Matlab 用条件初始化矩阵
我是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
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)]