对于这个问题,我应该使用数组在matlab中创建一个NxN权限表。
我到目前为止的代码如下:
C = [];
D = [];
N = input('Enter the value you would like to use for your NxN Powers Table: ');
for i = 1:N
for j = 1:N
C = [C;i^j];
end
C = transpose(C);
D = [D;C];
C = [];
end
D
此代码适用于1-9中的任何数字,只要输入大于此值的任何数字,它就会打印出奇怪的值。
这是我使用5作为输入的输出,第二个是使用10作为输入。
Enter the value you would like to use for your NxN Powers Table: 5
D =
1 1 1 1 1
2 4 8 16 32
3 9 27 81 243
4 16 64 256 1024
5 25 125 625 3125
Enter the value you would like to use for your NxN Powers Table: 10
D =
1.0e+010 *
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.0000 0.0000 0.0002 0.0010
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0002 0.0010 0.0060
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0006 0.0040 0.0282
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0002 0.0017 0.0134 0.1074
0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0005 0.0043 0.0387 0.3487
0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0010 0.0100 0.1000 1.0000
任何想法我的代码可能出错?看起来像一个简单的修复,我只是无法弄清楚它是什么错。任何帮助是极大的赞赏。感谢
答案 0 :(得分:1)
注意1.0e+010 *
。这意味着数字应该乘以10000000000.五位数字不足以打印它。插入format long
或format short g
即可查看整个数字。
答案 1 :(得分:1)
我认为您的代码运行正常。注意10 ^ 10 = 1e10;输出D
中的最后一个元素确实是1e10。检查各个元素D(i,j)
以验证这些元素是否正确。 MATLAB无法显示所有元素,因为有些元素比其他元素大得多;例如,1e10中有10位数字,而1 ^ 1 = 1则有1位数字。如果没有发生这种行为,那么间距会被搞砸。