代码之家  ›  专栏  ›  技术社区  ›  Carpetfizz

将vararg和varargout转换为单元格数组[关闭]

  •  -2
  • Carpetfizz  · 技术社区  · 6 年前

    我试图调用具有以下签名的函数

    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个 矩阵到 瓦拉金 并转换 瓦拉戈 进入一个 n+1个 矩阵?

    我试着用 my_matrices{:} 作为 瓦拉金

    这是 function 有问题。

    编辑:

    电流:

    D, ia, ib, ic = intersectm(A, B, C)
    

    预期:

    outputs = intersectm({A, B, C})
    

    在哪里?

    outputs{1}

    outputs{2} IA公司

    outputs{3}

    outputs{4} 集成电路

    1 回复  |  直到 6 年前
        1
  •  0
  •   Xiangrui Li    6 年前

    试试这个:

    in = {A B C}; % input
    out = cell(1, numel(in)+1); % cell for output
    [out{:}] = intersectm(in{:});