我有两个浮点变量:

x = 0.5;
y = 1.5;

我想对他们说:
x = floor(x);
y = floor(y);

我可以在一个命令中完成吗?这引发了一个错误:
[x y] = floor([x y]);

最佳答案

您可以为地板编写自己的包装器:

function varargout = myFloor(varargin)
for k = 1:nargin
    varargout{k} = floor(varargin{k});
end

如果您提供 x 和 y 作为两个单独的参数,此函数将显示所需的行为
[a, b] = myFloor(x,y)

这导致
a =

     0


b =

     1

如果您想使用串联数组 [x y] 作为输入(如您的示例中所示),您可以使用以下函数:
function varargout = myFloor(x)
for k = 1:numel(x)
    varargout{k} = floor(x(k));
end

然后你会打电话
[a, b] = myFloor([x y])

这导致
a =

     0


b =

     1

关于Matlab 将输出分成 2 个变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13646836/

10-12 23:53