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

时间:2017-03-24 20:16:21

标签: matlab cell-array

我正在尝试将函数的单元格数组输出存储到另一个单元格数组中,但无法执行此操作。以下是示例代码:

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),但得到错误。有人知道这样做吗?

1 个答案:

答案 0 :(得分:2)

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

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

您的另一个选择是从t1

实际返回三个输出
function [out1, out2, out3] = t1(  )
    out1 = 10;
    out2 = 20;
    out3 = 30;
end

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