2

这是我的导师说的。我需要以下特定编码的帮助,其中涉及遍历先前确定的数组中的行和列。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
4

1 回答 1

3

Matlab 的一些迭代“工具”是循环语句。如果您在迭代之前知道要执行多少次循环,那么for这就是您的事。如果您不知道,并且每次都需要决定是否继续迭代,那么您可以使用while. 如果你有 Matlab,打开它,在编辑器窗口中输入forand while,然后将光标移到它们上,然后按 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 时从 1 变为 20 num_rows,然后在 2 时再次从 1 变为 20 num_rows,依此类推,直到num_rows10 和num_cols20。

随着这些东西的澄清(我希望),我建议你去按 F1 在 Matlab 中的更多东西上;它是目前写得最好的帮助文档之一,如果不利用它会很遗憾。

于 2013-04-14T21:12:26.630 回答