need general coding/ command to separate matrix data
3 ビュー (過去 30 日間)
古いコメントを表示
I have a for loop y= 0:2:8 and whenever the for loop value chnaged it generates two values which was stored in a matrix. Now I have a complete matrix in which column one have y=0 then several values in a rows then y changed and several vlaues in a row as shown in fig.
final matrix is:
0 5 9
0 7 3.3
0 5.5 9
1 4.0 3.5
1 2 3.3
...................... so on.
Question: I need a general coding that store number of rows in a seperate matrix/ vector when y value is fixed. I mean when y=0 then all rows with y=0 stored in a seperate vector/ matrix. Then again y changed and results in several rows. These rows stored in a seperate vector/matrix.
Your support will be highly appreciated.
Regards
4 件のコメント
Stephen23
2022 年 9 月 7 日
Keeping data together is usually better than splitting it apart. How will you process the data?
採用された回答
Bruno Luong
2022 年 9 月 7 日
編集済み: Bruno Luong
2022 年 9 月 7 日
Try this:
% Fake data
finalmatrix=sortrows(randi(10,30,3),1)
y = finalmatrix(:,1);
n=diff(find([true; diff(y)~=0; true]))
splitmatrix=mat2cell(finalmatrix,n,size(finalmatrix,2));
splitmatrix{:}
4 件のコメント
dpb
2022 年 9 月 7 日
I got totally lost in the explanation above, but if @Bruno Luong's solution for splitmatrix is the right data, then
figure
hold on
cellfun(@(c)plot(c(:,2),c(:,3)),splitmatrix)
should be close to what you're looking for.
As always, "salt to suit"...
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!