2017-03-24 11 views
0

関数のセル配列の出力を別のセル配列に保存しようとしましたが、できませんでした。 t1は3×1のセルアレイを出力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 

機能:ここでサンプルコードです。行l1私はその配列を列フォーマットの配列(1x3)にキャプチャしようとしていますが、エラーが発生しています。誰でもこれを行う方法を知っていますか?

+0

't1'は1つの出力しか持っていません。3を格納しようとしています – excaza

答えて

2

t1から3つの出力を要求するのは、1つだけの場合です。値を3つの異なるセル配列に保存する前に、出力を一時変数に格納する必要があります。その割り当てを実行するには、あなたはその後、

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(); 
+0

' 't1'から3つの出力を要求しています。それは3x1の配列 'op1'ですか?私はセル配列と通常の配列と混乱しています – rfer5

+0

@ rfer5はい、3 x 1セル配列ですが、セル配列は*単一出力*です。セル配列は、各要素に任意のデータを格納できる点を除いて、通常の配列と同じです。 – Suever

関連する問題