Azzera filtri
Azzera filtri

cell2mat for column of strings

4 visualizzazioni (ultimi 30 giorni)
Carmelo Gonzales
Carmelo Gonzales il 7 Lug 2017
Commentato: Stephen23 il 7 Lug 2017
Hello,
I am having trouble converting a cell with numbers in string format to a column vector. The cell is as follows
data={'10';'1';'40';'5'}
I would like to convert this to a vector
new_data=[10;1;40;5]
When I try to use cell2mat(cell), this returns an error: Dimensions of matrices being concatenated are not consistent.
The only work around I have found thus far is the following
for ii=1:length(data)
new_data(ii,1)=(str2num(data{ii}));
end
Where new_cell is the desired vector. This would not be a problem to use, but the real cells contain many hundreds of numbers in string format, and the loop is eating too much time.
Is there any other workaround for this?
Thanks, Carmelo

Risposta accettata

KSSV
KSSV il 7 Lug 2017
Modificato: KSSV il 7 Lug 2017
data={'10';'1';'40';'5'} ;
iwant = cellfun(@str2num,data);
The above cellfun uses loop inside. You may check with this also:
str2double(data)
  2 Commenti
Walter Roberson
Walter Roberson il 7 Lug 2017
str2double(data) should do a fine job in one step, and is more robust. For example if the user entered 'delete(''*.*'')' then str2num() would proceed to delete all of your files but str2double would detect that the string is not numeric.
Carmelo Gonzales
Carmelo Gonzales il 7 Lug 2017
Thanks for the quick help!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by