Matlab函数和循环中的返回值

时间:2012-02-21 13:47:12

标签: matlab

如果我定义这样的函数

function [x, y] = findXY(B)
   [by, bx] = size(B);
   x = zeros(by,bx);
   y = zeros(by,bx);
   for i=1:10
       x(i) = i;
       y(i) = i; 
   end
end

我收到以下错误

  

类'findXY'的构造函数必须只返回一个输出值。

为什么会这样?我不能在循环中使用返回值? 谷歌搜索时我没有找到类似的东西。

3 个答案:

答案 0 :(得分:1)

我试过了:

[x, y] = findXY(ones(10,10))

并没有问题。您能否详细解释一下您在何处以及如何使用它?

答案 1 :(得分:0)

可能该函数被视为类的构造函数 - 它可能位于名为@TestXY的目录中吗?

在这种情况下,您只能返回一个对象。

也许你可以将两个返回值包装成一个单元格数组......

这样的东西
function xy = findXY(B)
   [by, bx] = size(B);
   x = zeros(by,bx);
   y = zeros(by,bx);
   for i=1:10
       x(i) = i;
       y(i) = i; 
   end
   xy = {x y};
end

但是如果函数不是构造函数,那么代码就完全有效了。

答案 2 :(得分:0)

我会回答我的问题。问题有点奇怪。我刚刚重启了matlab,一切都按预期工作。因此,如果您遇到麻烦而且无法找到问题,那么您应该重新尝试一下。它可能有用。