矩阵生成MATLAB

矩阵生成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

我正在用以下代码在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           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