Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 循环通过单元_Matlab_Loops - Fatal编程技术网

Matlab 循环通过单元

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

我在网格上画正方形。正方形需要在单元格数组中设置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 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和文本的值,顺序就很明显了
  • 简化代码的某些部分以查看行为如何更改。例如,将
    For
    循环中的一个循环更改为1:1,以仅生成一行或一列
  • 将正在打印的文本更改为有助于调试的中间值。例如,
    count
    ,或
    i
    ,或
    ii

为什么这是您的预期输出?为了知道算法应该做什么,我们需要更多的细节。@JaviV,正方形是RF框,ID代表在其他地方定义的通道,但为了简化这个,我没有包括这些。这就是为什么同一个ID后面不能跟结果中显示的ID一样。我不是指那种细节。然而,我的意思是我们如何知道应该给出的正确顺序。从您的样本输出中,我们可以提取模式,但我们不知道它们是否正确。