Matlab 用条件初始化矩阵

Matlab 用条件初始化矩阵,matlab,matrix,Matlab,Matrix,我是MATLAB新手,需要帮助。我必须完成一个初始化矩阵的代码,但我不知道从哪里开始 矩阵必须采用以下形式: 其中Yi=i/m表示i=1,…,m,其中m=6 要完成的代码是: m = 6; A = [1:m; 1:m; ...]; A = A/m; 以下是两种方法: 使用vander+fliplr 使用arrayfun+vertcat 结果 >> A A = 1.000000000 0.166666667 0.027777778

我是MATLAB新手,需要帮助。我必须完成一个初始化矩阵的代码,但我不知道从哪里开始

矩阵必须采用以下形式:

其中
Yi=i/m
表示
i=1,…,m
,其中
m=6

要完成的代码是:

m = 6;
A = [1:m;
     1:m;
     ...];

A = A/m;

以下是两种方法:

  • 使用
    vander
    +
    fliplr
  • 使用
    arrayfun
    +
    vertcat
结果

>> A
A =

   1.000000000   0.166666667   0.027777778   0.004629630   0.000771605   0.000128601   0.000021433
   1.000000000   0.333333333   0.111111111   0.037037037   0.012345679   0.004115226   0.001371742
   1.000000000   0.500000000   0.250000000   0.125000000   0.062500000   0.031250000   0.015625000
   1.000000000   0.666666667   0.444444444   0.296296296   0.197530864   0.131687243   0.087791495
   1.000000000   0.833333333   0.694444444   0.578703704   0.482253086   0.401877572   0.334897977
   1.000000000   1.000000000   1.000000000   1.000000000   1.000000000   1.000000000   1.000000000

以下是两种方法:

  • 使用
    vander
    +
    fliplr
  • 使用
    arrayfun
    +
    vertcat
结果

>> A
A =

   1.000000000   0.166666667   0.027777778   0.004629630   0.000771605   0.000128601   0.000021433
   1.000000000   0.333333333   0.111111111   0.037037037   0.012345679   0.004115226   0.001371742
   1.000000000   0.500000000   0.250000000   0.125000000   0.062500000   0.031250000   0.015625000
   1.000000000   0.666666667   0.444444444   0.296296296   0.197530864   0.131687243   0.087791495
   1.000000000   0.833333333   0.694444444   0.578703704   0.482253086   0.401877572   0.334897977
   1.000000000   1.000000000   1.000000000   1.000000000   1.000000000   1.000000000   1.000000000
你可以用

解释。首先用值
y1
生成一个列向量,直到
ym

c = (1:m).'/6;
A = c.^(0:m); 
然后制作一个矩阵,其中第一列将是
c
的幂0,第二列是
c
的幂1,以此类推

通过隐式展开,可以很容易地做到这一点,将列向量提升到包含
0:m
的行向量的幂(元素)

c = (1:m).'/6;
A = c.^(0:m); 
你可以用

解释。首先用值
y1
生成一个列向量,直到
ym

c = (1:m).'/6;
A = c.^(0:m); 
然后制作一个矩阵,其中第一列将是
c
的幂0,第二列是
c
的幂1,以此类推

通过隐式展开,可以很容易地做到这一点,将列向量提升到包含
0:m
的行向量的幂(元素)

c = (1:m).'/6;
A = c.^(0:m); 

使用隐式展开的好解,+1Also
[one(m,1)cumprod(repmat((1:m)。/m,1,m),2)]
使用隐式展开的好解,+1Also
[one(m,1)cumprod(repmat((1:m)。/m,1,m),2)]