check cell's contents and convert to matrix
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
i have a data cell as below:
when i use
param1=cell2mat(data(:,2));
param2=cell2mat(data(:,6));
param3=cell2mat(data(:,7));
it gives error:
??? Error using ==> cell2mat at 47
All contents of the input cell array must be of the same data type.
So, every time there is a string in cell matrix MATLAB Gives error and i correct it by hand.
Is there a method that makes this:
param1=cell2mat(data(:,2));
If one of the members of cell is string, than assign that to value of zero??
Thank you very much
5 Commenti
Walter Roberson
il 27 Mag 2011
For me it appears in the section underneath "click to add tags". I had to temporarily allow tinypic.com but I did not have to allow any of the other sites the page wants (photobucket, gigya, z25, or others.)
http://oi56.tinypic.com/33ylu1z.jpg
should be the direct link.
Jan
il 28 Mag 2011
Thanks Walter! Following your link I can see the table without any tricks. This is another argument to host pictures on a Mathworks server.
Risposta accettata
Laura Proctor
il 27 Mag 2011
The following code will find any strings in your input data and replace them with NaN values then converts the cell array to a matrix. You can use any value to replace the strings... it's just that NaN may be appropriate for this case.
c = { 1; 2 ; 3 ; 'aa ' ; 4 ; 10 ; ' '};
ival = cellfun(@ischar,c)
c(ival) = {NaN}
b = cell2mat(c)
1 Commento
Jan
il 27 Mag 2011
The OP asked for zeros explicitely. CELLFUN(@ischar, C) and CELLFUN('isclass', C, 'char') is equivalent.
Più risposte (6)
Andrei Bobrov
il 28 Mag 2011
idx = find(cellfun('isclass',data,'char'));
data(idx) = data(idx-1)
1 Commento
Laura Proctor
il 31 Mag 2011
Are you guaranteed that there will not be two adjacent string values in the input matrix?
If so, then this should work for you:
if indices(1)
data(1,2) = data(2,2);
indices(1) = 0;
end
data(indices) = data([indices(2:end) 0]);
0 Commenti
Vedere anche
Categorie
Scopri di più su Characters and Strings 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!