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

1 次查看(过去 30 天)
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

采纳的回答

Walter Roberson
Walter Roberson 2018-3-3
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 个评论
Dhanushka Sandaruwan
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by