我正在尝试使用以下签名调用函数
function [z varargout] = intersectm(varargin)
其中varargin
是用逗号分隔的矩阵列表,而varargout
也是用逗号分隔的矩阵列表。该功能旨在用作以下用途。
[D, ia, ib, ic] = intersectm(A, B, C, 'rows')
其中D
包含矩阵A,B和C中常见的行,而ia
,ib
和ic
包含A,B的索引和C包含共同的元素。
在我的程序中,我生成了n
矩阵,这些矩阵必须传递到intersectm
中,并且我期望此函数有n+1
个输出。
如何将n
矩阵的单元格数组传递到varargin
并将varargout
转换为n+1
矩阵的单元格数组?
我尝试使用my_matrices{:}
作为varargin
,但矩阵的形状未保留。它们只是变成了列向量。
这是有问题的function。
编辑:
当前:
D, ia, ib, ic = intersectm(A, B, C)
预期:
outputs = intersectm({A, B, C})
其中
outputs{1}
是D
outputs{2}
是ia
outputs{3}
是ib
outputs{4}
是ic
答案 0 :(得分:0)
尝试一下:
in = {A B C}; % input
out = cell(1, numel(in)+1); % cell for output
[out{:}] = intersectm(in{:});