我正在尝试将函数的单元格数组输出存储到另一个单元格数组中,但无法执行此操作。以下是示例代码:
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),但得到错误。有人知道这样做吗?
答案 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();