3

マトリックスAとBが2つあります。マトリックスAのサイズは1x1013ダブル、マトリックスBのサイズは1x12931ダブルです。行列Aの各要素を行列Bからbase-Nに変換したいと思います。たとえば、行列Aの最初の要素を行列Bの最初の要素に変換し、行列Aの2番目の要素を行列Bの2番目の要素に変換します。

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.

それを修正する方法は?

4

1 に答える 1

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
于 2013-02-20T08:05:38.857 に答える