【问题标题】:Matlab: Issues with filling a 401x401 matrixMatlab:填充 401x401 矩阵的问题
【发布时间】:2014-02-20 15:52:20
【问题描述】:

我在填充 401x401 矩阵时遇到问题。我确切地知道我想做什么,但我正在努力实现它。

我想要一个特定的角度(y 轴从 30-70)和特定的波长(x 轴从 400nm-1000nm)填充到 401 x 401 以包含相关的反射系数(我有方程式和他们都很好)。

我认为这会起作用#

    for i=1:length(ANGLE)
        angle=ANGLE(i);
        etc etc
        for i=1:length(wavelengths)
            lambda=wavelengths(i);
            etc etc
            REF(i)=ref;
        end
     end

希望您能帮上忙,如果措辞不当,请见谅。 谢谢 卡梅尔

【问题讨论】:

  • 我很不清楚你在问什么。为什么是 401x401?反射系数是多少?这与每个索引有何关系?
  • 也许用j而不是i替换你的第二个for循环迭代器。使用iijj 的好习惯。

标签: matlab for-loop reflection matrix


【解决方案1】:

正如 m_power 指出的那样,您应该为内部 for 循环使用不同的迭代器(并尽量避免使用 i 和 j,因为它们通常用于表示虚值)。除此之外,您应该为每个反射系数条目引用行和列条目。因为你想要垂直方向的角度和水平方向的波长,你可以使用这样的东西:

for ii=1:length(ANGLE)
        angle=ANGLE(ii);
        etc etc
        for jj=1:length(wavelengths)
            lambda=wavelengths(jj);
            etc etc
            REF(ii,jj)=ref;
        end
     end

希望这会有所帮助。

【讨论】:

  • 除此之外,由于您知道 REF 的大小应该提前,因此最好在循环内分配值之前预先分配空间。例如,您可以使用 REF = zeros(length(ANGLE),length(wavelengths)) 初始化为全零
猜你喜欢
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-28
  • 2015-05-15
  • 2015-03-06
  • 1970-01-01
相关资源
最近更新 更多