2017-10-23 569 views
1

セル配列に格納されている文字列の中の数値を数値配列に変換します。このようセル配列をMATLABの数値に変換するには

IDcell=cell(10,1); 
IDcell(:,1)={'A123'}; 
IDnum(1:size(IDcell,1),1)=str2num(IDcell{:, 1}(1,2:4)); 

最後の部分が問題です。どのような可能性であることである:

IDnum(1,1)=str2num(IDcell{1, 1}(1,2:4)); 

ではなく、一度に全体の配列。

どうもありがとう、 smaica

答えて

1

これ以外の回答はうまくいきます。 Matlabbitの比較的新しいバージョンを使用している場合は、Matlabbitの文字列の使用が有効です。 Hielkeのループやcellfunの使用は、私が通常このような何かをする方法です。しかし、Matlabで何かを解決する方法は常に複数あるように思われるので、ここでは別の方法があります。

>> IDchar = char(IDcell); 
>> nums= str2num(IDchar(:,2:4)) 

nums= 

    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
+0

ありがとう、あまりにも動作します! – aciams

0

あなたはループが必要になります。あなたも面白いかもしれません何

n = size(IDcell,1); 
IDnum = zeros(n, 1); 
for i in 1:n 
    IDnum(i,1) = str2num(IDcell{i, 1}(1, 2:4)); 
end 

を16bに開始cellfun

2

で新しいテキスト関数と文字列がありますこれを簡単にするデータ型

>> IDcell=cell(10,1); 
>> IDcell(:,1)={'A123'}; 

>> IDcell = string(IDcell); 
>> nums = extractAfter(IDcell,'A'); 
>> nums = double(nums) 

nums = 

    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
+0

ありがとうございます! – aciams

関連する問題