セルを倍精度実数に変換するには?

13 Ansichten (letzte 30 Tage)
MathWorks Support Team
MathWorks Support Team am 13 Nov. 2024

例えば、aが以下のような11x1のセル配列であるとします。

a =

'0.000000'
'1.000000'
'2.000000'
'3.000000'
'4.000000'
'5.000000'
'6.000000'
'7.000000'
'8.000000'
'9.000000'
'10.000000'
これを倍精度実数に変換したいと考えています。b=cell2mat(a)を試みたところ、以下のエラーが発生しました:

??? Error
using ==> cat
CAT
arguments dimensions are not consistent.
Error
in ==> cell2mat at 85
m{n} = cat(1,c{:,n});
ただし、ループと2段階の変換を使えば回避できることは知っています:

for i = 1:length(a)
b(i) = str2num(cell2mat(a(i)));
end
そこで、もっと簡単に一段階でこの変換を行う方法があるのか疑問に思っています。 

Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 13 Nov. 2024
文字ベクトルのセル配列を数値に変換するには、str2double関数を使用するのが最も簡単な方法です。
C = {'0.000000'; '10.000000'; '100000.000000'}; M = str2double(C);
cell2mat関数は、文字ベクトルのセル配列を文字配列に変換しますが、これはすべての文字ベクトルが同じ長さである場合に限ります。また、cell2matはセルの内容のデータ型を保持するため、文字を数値に変換しません。
もしコードの実行速度を重視する場合は、以下のコードを使用してください。このコードはstr2doubleよりも高速です:
C = {'0.000000'; '1.000000'; '2.000000'; ... '3.000000'; '4.000000'; '5.000000'; '6.000000' '7.000000'; '8.000000'; '9.000000'; '10.000000'}; S = sprintf('
(注:コードが途中で切れているため、続きが必要です。) 

Weitere Antworten (0)

Kategorien

Mehr zu データ型の変換 finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!