【问题标题】:Variable not defined变量未定义
【发布时间】:2016-07-10 11:30:30
【问题描述】:

我想运行这条线,但不幸的是它抛出了一个错误。有什么想法吗?

未定义的函数或变量mr

游乐场出错(第 23 行)
X = min(mr);

j = 1;

for i = 1:(resolution1+1)
    line(i) = m(a(1))*ab(i)+c;
end

for i = 1:(resolution1)
    if or(or(line(i)>ab_y(i) & line(i+1)<ab_y1(i+1),line(i)<ab_y1(i)& line(i+1)>ab_y1(i+1)),line(i)==ab_y1(i))
        mr(j) = ab1(i);
        rk(j) = ab_y1(j);
        j = j+1;
    end
end

X = min(mr);
Y = max(mr);

【问题讨论】:

  • 好吧,仅当 (or(line(i)&gt;ab_y(i) &amp; line(i+1)&lt;ab_y1(i+1),line(i)&lt;ab_y1(i)&amp; line(i+1)&gt;ab_y1(i+1)),line(i)==ab_y1(i)) 计算结果为 1 时才定义它。当计算结果为 0 时,mr(j)=ab1(i); 不会被执行。

标签: matlab loops variables


【解决方案1】:

你的情况:

or(or(line(i)>ab_y(i) & line(i+1)<ab_y1(i+1),line(i)<ab_y1(i)& line(i+1)>ab_y1(i+1)),line(i)==ab_y1(i)) 

总是返回false,所以里面的语句

mr(j)=ab1(i); rk(j)=ab_y1(j); 

永远不会被执行。因此变量mr 不存在。

在循环之前添加一个mr = []; 语句以初始化变量(并修改你的条件为什么它总是返回假)。

【讨论】:

  • 谢谢!我不确定错误发生在哪里。感谢您的提示
猜你喜欢
  • 2011-06-11
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 2021-10-15
  • 2017-07-03
相关资源
最近更新 更多