我有两个矩阵A& B.矩阵A尺寸1x1013双和矩阵B尺寸1x12931双。我想将矩阵A的每个元素从矩阵B转换为base-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.
如何解决?
答案 0 :(得分:2)
您可能正在尝试转换负数:
>> 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