Separating values in cell arrays
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
ugur uresin
el 1 de Jul. de 2018
Comentada: Jan
el 1 de Jul. de 2018
Suppose, one of the my columns in my excel data as follows:
'G1(f1) : Resulting Value = 0.5'
'G1(f2) : Resulting Value = 1'
'G1(f3) : Resulting Value = 1.5'
'G1(f4) : Resulting Value = 2'
.
.
.
'G1(f8) : Resulting Value = 4'
I'd like to separate the values that 0.5, 1 ... 4 as double!
I have tried the code below:
plotdata=xlsread('S:/PLOT/PLOT.xlsx');
[num, txt] = xlsread('S:/PLOT/PLOT.xlsx', 'B4:B43');
[rows,cols]=size(txt);
uplim=plotdata(2,2); %this cell gives number of 'Resulting Value's
k=1;
for i=4:uplim+4-1
[dummy(k), txt(k)] = strtok(txt(k), '=');
mylist(k)=strtok(txt(k),'= ');
k=k+1;
i=i+1;
end
This code gives "mylist" as 1x8 cell!
THE PROBLEM is that I can not use "mylist" for arithmetic operations. How can I turn "mylist" from cell to a matrix or a vector that I can use for arithmetic operations.
Or I'm open to new codes to separate the values that 0.5, 1 ... 4 as double!
5 comentarios
Paolo
el 1 de Jul. de 2018
Of course, my bad. Conversion from char to double is necessary. Please check my answer below. By the way, in the file you attached, data ranges from B4 to B11.
Respuesta aceptada
Paolo
el 1 de Jul. de 2018
Editada: Paolo
el 1 de Jul. de 2018
[num, txt] = xlsread('mydata.xlsx', 'B4:B11');
mylist = cellfun(@(x) str2double(regexp(x,'(\d*\.?\d*)$','match')),txt);
2 comentarios
Paolo
el 1 de Jul. de 2018
You are welcome. You may also use:
[num, txt] = xlsread('mydata.xlsx', 'B4:B11');
[~,mylist] =strtok(txt,'=');
mylist =str2double(strtok(mylist,'='));
Más respuestas (1)
Jan
el 1 de Jul. de 2018
Editada: Jan
el 1 de Jul. de 2018
Remember, that txt is a cell array. Then eitehr use
[dummy, str] = strtok(txt{k}, '=');
But strtok can operate on the complete cell also:
[~, mylist] = strtok(txt(4:uplim+4-1), '=');
mylist = strrep(mylist('= ', ''));
Note: i=i+1; is confusing but useless only inside a for i loop.
2 comentarios
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!