Graphing an array by largest row to smallest row

1 vue (au cours des 30 derniers jours)
Gabriel
Gabriel le 25 Avr 2023
Réponse apportée : dpb le 25 Avr 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 commentaire
Dyuman Joshi
Dyuman Joshi le 25 Avr 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?

Connectez-vous pour commenter.

Réponses (1)

dpb
dpb le 25 Avr 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...

Community Treasure Hunt

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

Start Hunting!

Translated by