Separating values in cell arrays
古いコメントを表示
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 件のコメント
Paolo
2018 年 7 月 1 日
Try
mylist = [mylist{:}]
What you are doing can actually be achieved in a simpler way. Can you attach your file?
ugur uresin
2018 年 7 月 1 日
ugur uresin
2018 年 7 月 1 日
Paolo
2018 年 7 月 1 日
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.
ugur uresin
2018 年 7 月 1 日
編集済み: ugur uresin
2018 年 7 月 1 日
採用された回答
その他の回答 (1 件)
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 件のコメント
ugur uresin
2018 年 7 月 1 日
Jan
2018 年 7 月 1 日
Then adjust the index: 4:uplim+4-1 to 1:uplim.
カテゴリ
ヘルプ センター および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!