在matlab中捕获单元格数组中的数据

capturing data in cell arrays in matlab

我正在尝试将一个函数的元胞数组输出存储到另一个元胞数组中,但无法做到。这是一个示例代码:

clear all; close all; clc;
b1=cell(1,3);
%b1=t1()
[b1{1,1},b2{1,2},b{1,3}]=t1(); %%l1

function [ op1 ] = t1(  )
op1=cell(3,1);
op1{1}=10;
op1{2}=20;
op1{3}=30;
end

函数 t1 输出一个 3x1 元胞数组。在 l1 行中,我试图将该数组捕获到列格式数组 (1x3) 中,但出现错误。任何人都知道如何做到这一点?

您请求 t1 的三个输出,而它只有 return 一个。在将值保存到三个不同的元胞数组之前,您应该将输出存储在一个临时变量中。要执行该分配,您可以使用 {:} 索引生成一个逗号分隔的列表,然后您可以将其分配给所有不同的元胞数组

output = t1();
[b1{1,1}, b2{1,2}, b{1,3}]= output{:};

你的另一个选择实际上是 return 三个 来自 t1

的输出
function [out1, out2, out3] = t1(  )
    out1 = 10;
    out2 = 20;
    out3 = 30;
end

[b1{1,1}, b2{1,2}, b{1,3}] = t1();