矩阵生成MATLAB
我正在用以下代码在matlab中构建一个nxn矩阵:矩阵生成MATLAB,matlab,for-loop,matrix,Matlab,For Loop,Matrix,我正在用以下代码在matlab中构建一个nxn矩阵: x = linspace(a,b,n); for i=1:n for j=1:n A(i,j) = x(j)^(i-1); end A i b(i) = (1/i)*x(n)^i - (1/i)*x(1)^i; end 我用a=1b=10和n=10来测试它。我得到了I=8的预期结果 我= A= 第1列至第7列 1 1 1
x = linspace(a,b,n);
for i=1:n
for j=1:n
A(i,j) = x(j)^(i-1);
end
A
i
b(i) = (1/i)*x(n)^i - (1/i)*x(1)^i;
end
我用a=1b=10和n=10来测试它。我得到了I=8的预期结果
我=
A=
第1列至第7列
1 1 1 1 1 1 1
1 2 3 4 5 6 7
1 4 9 16 25 36 49
1 8 27 64 125 216 343
1 16 81 256 625 1296 2401
1 32 243 1024 3125 7776 16807
1 64 729 4096 15625 46656 117649
1 128 2187 16384 78125 279936 823543
1 256 6561 65536 390625 1679616 5764801
第8列至第10列
1 1 1
8 9 10
64 81 100
512 729 1000
4096 6561 10000
32768 59049 100000
262144 531441 1000000
2097152 4782969 10000000
16777216 43046721 100000000
然而,从i=9开始,它变成:
我=
A=
1.0e+09*
第1列至第9列
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0003 0.0005
0.0000 0.0000 0.0000 0.0000 0.0001 0.0003 0.0008 0.0021 0.0048
0.0000 0.0000 0.0000 0.0001 0.0004 0.0017 0.0058 0.0168 0.0430
0.0000 0.0000 0.0000 0.0003 0.0020 0.0101 0.0404 0.1342 0.3874
第10栏
0.0000
0.0000
0.0000
0.0000
0.0000
0.0001
0.0010
0.0100
0.1000
1.0000
有人能告诉我发生了什么事吗?我在Matlab中不是很有经验(我主要使用C++或Python),到目前为止我自己也看不出来。 < P>这只是一个更大的数字的格式化问题。试一试
sprintf('%20.0f', A(end,end))
你会发现这个数字是正确的。至少在某种程度上,您会遇到双重表示问题…,因为对数据显示应用了通用的缩放。请参见输出中的:
A =
1.0e+09 *
从矩阵中的每个条目中计算出一个公因数10^9
您可能需要使用以下方法调整输出显示:
format short g
抱歉,但是您希望得到什么?作为代码的替代方案,您可以简单地编写
[value,index]=meshgrid(a:b,0:(n-1));A=数值。^exponent
谢谢!Matlab输出格式确实会让我很困惑。
A =
1.0e+09 *
format short g