Split a double array by zero and store in a column matrix

1 visualizzazione (ultimi 30 giorni)
This is my code. But it gives the error 'Dimensions of matrices being concatenated are not consistent'.
My expected output is;
2 5 6 8 9
11 13 14 18
3 7 15 19 20
Please help!
Routes=[0 2 5 6 8 9 0 11 13 14 18 0 3 7 15 19 20 0];
Display=[];
Current_Cluster=[];
for i=2:length(Routes)
if Routes(i) ~=0
Current_Cluster=[Current_Cluster Routes(i)];
else
Display=[Display ; Current_Cluster];
Current_Cluster=[];
end
end
disp('Çulsters are');
Display

Risposta accettata

Walter Roberson
Walter Roberson il 3 Mar 2018
You cannot create a numeric matrix with that output. Your second row only has four numeric entries whereas the first and third have 5 entries.
You can create a text output that would display to look like what you want, but you cannot do it numerically.
You can create a cell array with one number per cell, and with empty cells, but you might not like the display.
  1 Commento
Dhanushka Sandaruwan
Dhanushka Sandaruwan il 4 Mar 2018
Thanks Roberson. According to your comment I changed the code as follows.
Routes=[0 2 5 6 8 9 0 11 13 14 18 0 3 7 15 19 20 0];
Display={};
Current_Cluster=[];
for i=2:length(Routes)
if Routes(i) ~=0
Current_Cluster=[Current_Cluster Routes(i)];
else
Display=[Display , num2str(Current_Cluster)];
Current_Cluster=[];
end
end
disp('Culsters are');
Display'
Now it is working as I want but can't understand how it works. Anyway thanks a lot.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Structures in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by