在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();
我正在尝试将一个函数的元胞数组输出存储到另一个元胞数组中,但无法做到。这是一个示例代码:
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();