Grouping elements in a matrix
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have a
matrix, lets call it M. The elements of M have values between -2 to +2. For example, M is a row matrix,
and it is given by
M = [2 1.3 1.4 1.1 -1 -0.9 -0.5 0 0.5 0.9 1.1 0.9 1.6 0.8 0.2 1.1....]
I would like to sort the elemnts according to:
.
i.e., in the above example, the grouping should look like this: {2 1.3 1.4 1.1 -1}, { -0.9 -0.5 0 .5 0.9},{1.1}, { 0.9 }, {1.6},{0.8 0.2}, {1.1}..
Similarly, I would like to do this kind of sorting at each row for a matrix M(i,j).
Can anyone please help me how to do it in MATLAB?
Thanks!
4 Commenti
Matt J
il 20 Gen 2023
Modificato: Matt J
il 20 Gen 2023
I for one do not understand the grouping criterion. Are you just grouping monotonically increasing/decreasing runs of numbers together? How should the final result be stored if there are a different number of groups in each row of M? And what do you plan to do with the groups once you've isolated them?
Fangjun Jiang
il 20 Gen 2023
M = [2 1.3 1.4 1.1 -1 -0.9 -0.5 0 0.5 0.9 1.1 0.9 1.6 0.8 0.2 1.1];
index=and(M>-1, M<1)
For one row of data, I think the logic for grouping is to check the change of value in "index" above
Risposte (1)
Dyuman Joshi
il 20 Gen 2023
M = [2 1.3 1.4 1.1 -1 -0.9 -0.5 0 0.5 0.9 1.1 0.9 1.6 0.8 0.2 1.1];
index=and(M>-1, M<1);
idx=unique([1 find(diff(index)~=0)+1 numel(M)+1]);
out=mat2cell(M,1,diff(idx))
0 Commenti
Vedere anche
Categorie
Scopri di più su Shifting and Sorting Matrices 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!