如何在指定的用户定义函数中迭代matlab中矩阵的行和列

时间:2013-04-14 19:01:28

标签: matlab

这是我的导师。我需要以下特定编码的帮助,包括迭代先前确定的数组中的行和列。 colNum = 20和rowNum 10.此外,tempToColor函数已经定义并正常工作,它每行创建一个101x3矩阵,根据0-100度之间的温度给出不同的色调。

“此函数有一个finElems参数,不会返回任何内容。它会绘制finElems数组中的所有温度值。您可以在下面看到我的示例图。要绘制颜色,请使用如下语句:

plot(colNum, numRows-rowNum, 's', 'Color', color, 'MarkerFaceColor', color, 'MarkerSize', 20);

为了使用此语句,您应该创建一些变量:colNum:这是当前列号 。您将遍历数组中的所有列,因此将当前列号存储在此变量中。 rowNum:与colNum相同,但它是当前行号。 •color:这是由函数tempToColor确定的当前finElems元素的颜色 。我发现有必要使用表达式numRows - rowNum,以便数组的底行(编号最高的行)显示为图表的底行。否则鳍片在图表中显示为倒置。使用此大纲来实现该功能:

function plotFin(finElems)

hold on;

% iterate through all the rows:

% iterate through all the columns: (this is a loop within a loop)

% Use the tempToColor function to get the temperature.

% Plot the temperature color.

% end

% end

axis equal tight;

axis([0 (numCols+1) -1 numRows]);

hold off;

end

1 个答案:

答案 0 :(得分:3)

用于迭代的一些Matlab的“工具”是循环语句。如果你在迭代你执行循环的次数之前知道,那么for就是你的事。如果您不知道,并且每次都需要决定是否继续迭代,那么您可以使用while。如果您有Matlab,请打开它,然后在编辑器窗口中编写forwhile,然后按光标对其中的每一个进行操作并按F1。 (别担心,文字会一直在这里,直到你回来)。

在您的情况下,您事先知道必须迭代多少行(10)和多少列(20)。那么,你需要的是什么?......是的,你需要一个for。在行的情况下,语句可能如下所示:

for num_rows = 1:10
        % Here add some code
end;

这告诉Matlab执行十次内部的任何操作。每次num_rows循环体内for的值都不同:第一次是1,然后是2,然后是3,依此类推,直到10。

现在,计划是:对于每一行,您还必须迭代通过列。为此,可以将两个循环组合成另一个(我认为这个词是“窝” - 抱歉,不是英语母语。想想嵌套循环,如电子表上的数字:每小时迭代有60个分钟迭代。)代码可能如下所示:

for num_rows = 1:10
        for num_cols = 1:20
                % Here some other code
        end;
end;

现在,当num_cols为1时,每次内部迭代的num_rows值从1到20,然后当num_rows为2时再从1到20,依此类推,直到num_rows为10,num_cols为20。

这个东西澄清了(我希望),我建议你去Matlab上更多东西按F1;它是那里写得最好的帮助文档之一,很遗憾没有利用它。