这是我的导师。我需要以下特定编码的帮助,包括迭代先前确定的数组中的行和列。 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
答案 0 :(得分:3)
用于迭代的一些Matlab的“工具”是循环语句。如果你在迭代你执行循环的次数之前知道,那么for
就是你的事。如果您不知道,并且每次都需要决定是否继续迭代,那么您可以使用while
。如果您有Matlab,请打开它,然后在编辑器窗口中编写for
和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时,每次内部迭代的num_rows
值从1到20,然后当num_rows
为2时再从1到20,依此类推,直到num_rows
为10,num_cols
为20。
这个东西澄清了(我希望),我建议你去Matlab上更多东西按F1;它是那里写得最好的帮助文档之一,很遗憾没有利用它。