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