我想将乘法表的基数更改为另一个基数。
如果我使用
disp(dec2base((1:10).*(1:10)',7))
数字一个个地涌出来。然而,我希望它们保持在给定矩阵中的确切位置。
数字基数是一个显示问题,数字总是在内部以基数2存储和操作。所以你所需要做的就是写一个循环,以你想要的方式显示数字
for ii=1:10
for jj=1:10
fprintf('%6s',dec2base(ii*jj,7));
end
fprintf('n');
end
输出:
1 2 3 4 5 6 10 11 12 13
2 4 6 11 13 15 20 22 24 26
3 6 12 15 21 24 30 33 36 42
4 11 15 22 26 33 40 44 51 55
5 13 21 26 34 42 50 55 63 101
6 15 24 33 42 51 60 66 105 114
10 20 30 40 50 60 100 110 120 130
11 22 33 44 55 66 110 121 132 143
12 24 36 51 63 105 120 132 144 156
13 26 42 55 101 114 130 143 156 202
将数字的7进制表示存储为字符串数组:
M = (1:10).*(1:10)';
out = strings(size(M));
for jj = 1:size(M,2)
for ii = 1:size(M,1)
out(ii,jj) = dec2base(M(ii,jj) ,7);
end
end