2017-10-23 4 views
1

Ich möchte die numerischen Werte innerhalb einer Zeichenfolge, die in einem Zellenarray gespeichert ist, in ein numerisches Array konvertieren.Wie konvertiere ich von Zellenarray in numerische Werte in MATLAB

So:

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

Der letzte Teil ist das Problem. Was ist möglich:

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

aber nicht die ganze Reihe auf einmal.

Vielen Dank, smaica

Antwort

1

Die anderen Antworten hier funktionieren. Matlabbit verwendet String, wenn Sie eine relativ neue Version von Matlab verwenden. Hielkes Loops oder der Gebrauch von cellfun ist, wie ich normalerweise so etwas machen würde. Allerdings ist hier eine Alternative rein, weil es immer mehrere Möglichkeiten gibt, etwas in Matlab zu lösen.

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

nums= 

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

vielen dank, das klappt auch! – aciams

0

Sie eine Schleife benötigen:

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

Was Sie vielleicht auch interessant finden ist cellfun

2

in 16b Starten gibt es neue Textfunktionen und die Zeichenfolge Datentyp, der das einfach macht

>> 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

vielen dank, das funktioniert! – aciams

Verwandte Themen