我有一个简单的任务要在MATLAB中使用.bashrc
/ varargin
作为矩阵。
我必须返回具有相同行和列编号的乘法元素的结果,如下所示:
out
等等。
我写了一些代码,但它只返回第一个矩阵的结果。乘法是有效的,因为我在乘法后使用tab(1,1) * tab(2,2)
进行了检查。
这是我的代码,如何更改它以返回所有矩阵的结果?
disp(result)
答案 0 :(得分:1)
不是您问题的答案,但您的功能可以重写为一行:
function varargout = test2(varargin)
varargout = cellfun(@(x) prod(diag(x)), ...
varargin,...
'UniformOutput', false);
end
你可以(最初)使用它作为一个功能来验证你自己的功能,并且(稍后)通过弄清楚它是如何工作来从中学到很多东西。
答案 1 :(得分:0)
返回的参数数量将由您调用函数的方式定义。例如,如果你写了:
a = test(x, y, z);
只返回第一个输出参数。相比之下,
[a, b] = test(x,y,z);
将返回第一个和第二个输出。如果您只想返回一个包含结果的单元格数组,请将输出参数命名为varargout
之外的其他内容,最后只输出一个输出,每个输入的结果都在单元格中。