2
Nx1
の数値のMatlabにベクトルA
があるとします。小数点以下の桁のベクトルから浮動小数点数を作成する
N=8
A=[1;2;3;4;5;6;7;8]
私は、配列0.12345678
がダブルでB
B=[0.12345678]
へA
を変換したいです。
Nx1
の数値のMatlabにベクトルA
があるとします。小数点以下の桁のベクトルから浮動小数点数を作成する
N=8
A=[1;2;3;4;5;6;7;8]
私は、配列0.12345678
がダブルでB
B=[0.12345678]
へA
を変換したいです。
あなたは私たちは、10^-1
から10^(-numel(A))
に配列を作成し、A
の転置との要素ごとの乗算を行う(それ1 x N
作るため)、その後、実際にこれがどのように機能するかを示すために結果
result = sum(A.' .* 10.^-(1:numel(A)));
fprintf('%0.8f', result)
% 0.12345678
を合計することができますより小さなA
ベクターで実証することができる。これを考える
A = [1; 2; 3; 4];
tmp = 10.^-(1:numel(A));
% 0.1000 0.0100 0.0010 0.0001
tmp = A.' .* tmp;
% 0.1000 0.0200 0.0030 0.0004
result = sum(tmp);
% 0.1234
代替方法は10^1
10^(numel(A))
から
result = sum(A.' ./ 10.^(1:numel(A)));
で別の方法をA
要素単位を分割することであろうASCIIコードを使用して文字列にあなたの数字を変換することで、その後に'0.'
を付加文字列の先頭をdouble doubleに変換すると、str2double
result = str2double(['0.' A.' + '0']);
カンマの後にMatlabが実際に検討している桁数を聞かせてもらえますか?例えば。 'N = 200'とします。 – user3285148
Matlabのコンマからどのくらい離れているかに関するルールはありますか? – user3285148
@ user3285148あなたは浮動小数点表現によって制限されているので、 'N = 200'は動作しません。その精度で数値を表すには、可変精度の算術演算または文字列を使用する必要があります – Suever