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

5 visualizaciones (últimos 30 días)
MathWorks Support Team
MathWorks Support Team el 13 de Nov. de 2024 a las 0:00
Respondida: MathWorks Support Team el 13 de Nov. de 2024 a las 4:04

例えば、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
そこで、もっと簡単に一段階でこの変換を行う方法があるのか疑問に思っています。 

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 13 de Nov. de 2024 a las 0:00
文字ベクトルのセル配列を数値に変換するには、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('
(注:コードが途中で切れているため、続きが必要です。) 

Más respuestas (0)

Categorías

Más información sobre ビッグ データの処理 en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

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

Start Hunting!