我有两个矩阵 A 和 B。矩阵 A 大小为 1x1013 双倍,矩阵 B 大小为 1x12931 双倍。我想将矩阵 A 的每个元素从矩阵 B 转换为基数 N。例如,矩阵 A 的第一个元素转换为矩阵 B 的第一个元素,矩阵 A 的第二个元素转换为矩阵 B 的第二个元素,依此类推。
mm = length(A);
nn = length(B);
base = cell(1,mm);
x = zeros(1,mm)
for ff = 1:mm
ff
AA=A(ff)
BB=B(ff)
x(ff) = str2double(dec2base(int32(AA),int32(BB)));
base{ff} = x(ff);
end
但我有一个错误。
First argument must be an array of integers, 0 <= D <= 2^52.
如何解决?
最佳答案
您可能正在尝试转换负数:
>> dec2base(-1, 2)
??? Error using ==> dec2base at 24
First argument must be an array of integers, 0 <= D <= 2^52.
检查
A
的所有元素是否为负。如果有任何是负面的,那么你可以做>> x = -10;
>> d = dec2base(abs(x), 2);
>> y = -str2double(d)
y =
-1010
关于matlab - 如何在MATLAB上将十进制转换为不同的基数N?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14973795/