Matlab 循环通过单元
我在网格上画正方形。正方形需要在单元格数组中设置ID。我希望该ID按顺序遍历单元格中的每个ID,而不是按行遍历Matlab 循环通过单元,matlab,loops,Matlab,Loops,我在网格上画正方形。正方形需要在单元格数组中设置ID。我希望该ID按顺序遍历单元格中的每个ID,而不是按行遍历 cell_id = cell(1, 2); % 1 x 5 cell array cell_id{1, 1} = 1365; cell_id{1, 2} = 1256; cell_id{1, 3} = 6214; cell_id{1, 4} = 2587; cell_id{1, 5} = 1564; hold on for i = 1:2:12 count = 1; for i
cell_id = cell(1, 2); % 1 x 5 cell array
cell_id{1, 1} = 1365; cell_id{1, 2} = 1256; cell_id{1, 3} = 6214; cell_id{1, 4} = 2587; cell_id{1, 5} = 1564;
hold on
for i = 1:2:12
count = 1;
for ii = 1:2:12
plot(1*i , 1*ii, 's', 'MarkerSize', 50);
if (count <= 5)
id = cell_id(1,count);
text(1*i, 1*ii, ['ID:',id]);
count = count + 1;
elseif (count > 5)
id = cell_id(1,1);
count = 1;
text(1*i, 1*ii, ['ID:',id]);
end
end
end
cell_id=cell(1,2);%1 x 5单元阵列
单元id{1,1}=1365;单元id{1,2}=1256;单元id{1,3}=6214;单元id{1,4}=2587;单元id{1,5}=1564;
等等
对于i=1:2:12
计数=1;
对于ii=1:2:12
地块(1*i,1*ii,'s','MarkerSize',50);
如果(计数5)
id=单元id(1,1);
计数=1;
文本(1*i,1*ii,['ID:',ID]);
结束
结束
结束
有什么想法吗,谢谢。你的外循环结束了
i
。您的内部循环已结束ii
(顺便说一句,名称不好)。这意味着ii
的更改速度更快,并且您正在将其用于方框和文本的y
偏移量,这意味着您的计数id将沿y方向向上更改。只需更改plot
和text
调用中i
和ii
的顺序即可
例如,如果使用循环变量x
和y
,这将更加明显
以下是其他一些调试技巧,它们将帮助您在将来解决类似问题:
- 只需打印i、ii和文本的值,顺序就很明显了
- 简化代码的某些部分以查看行为如何更改。例如,将
循环中的一个循环更改为1:1,以仅生成一行或一列For
- 将正在打印的文本更改为有助于调试的中间值。例如,
,或count
,或i
ii