Graphing an array by largest row to smallest row

5 Ansichten (letzte 30 Tage)
Gabriel
Gabriel am 25 Apr. 2023
Beantwortet: dpb am 25 Apr. 2023
I would like to graph an array, let's call it output_array, by graphing its largest (in terms of nonzero entries) row first, then graphing the next largest until the last row to graph is the smallest row.
For instance: output_array = [1,2,3; 1,2,3,4,5; 1,2,3,4];
And it would graph the second vector first, then the third vector, then the 1st vector last. Is there an easy way to do this?
  1 Kommentar
Dyuman Joshi
Dyuman Joshi am 25 Apr. 2023
Tthe output_array you mentioned will not be defined as there is a dimension mismatch, see below
y = [1,2,3; 1,2,3,4,5; 1,2,3,4]
Error using vertcat
Dimensions of arrays being concatenated are not consistent.
You can either pad them with zeros or NaNs or define a cell array.
And what exactly do you mean by graphing?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

dpb
dpb am 25 Apr. 2023
output_array = {[1,2,3]+0; [1,2,3,4,5]+0.1; [1,2,3,4]+0.2};
[~,ix]=sort(cellfun(@numel,output_array),'descend');
ix=num2cell(ix(:));
hold on
cellfun(@(c,i)plot(c,'x-','DisplayName',"Line "+i),output_array,ix)
legend('location','northwest')
Had to introduce an offset to avoid all points being identical...

Kategorien

Mehr zu Graph and Network Algorithms finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by