2016-09-01 11 views
1

[EDIT]挿入新しい値[MATLAB]

言うが、私はn細胞からなるセルアレイAを有し、それらの各々は、サイズ(m,1)のゼロベクトルです。

例:Aは、1×2セルアレイA =である

どのように同じ行に同時に、各セルに新しい値を挿入することができ、[二重100x1] [ ダブル100x1]別々のコード行を書く必要はありませんか?そうするにはcellfunを使用できますか?例えば

、どのように単一のコード行を使用して、新しい値nと第2のセルの新しい値mith行の最初のセルのith行を置き換えることができますか?

mおよびnは、同じ値であってもなくてもよい。

+1

私は分かりませんが、セルの内容は常にベクトルMx1ですか、それとも行列MxNですか?また、あなたの質問では、1つのセルに 'm'を、もう1つに' n'を、 'i'行に2つの別々の列を割り当てたいですか? – Trogdor

+1

[mcve]を入力してください。既存の行を置き換えようとしているのか、各ベクトルの真ん中に新しい行を追加しようとしていますか? – beaker

+0

@Trogdor私は説明をします – nashynash

答えて

0

コメントで述べたように、効率のために配列などの他のオプションを試してみることもできますが、evalin関数を使用してchange_cellを使うことができます。たとえば、各セルの2番目の行の内容をvalちょうど1行のコードで!:

A = {[1 2 3],[4 5 6]}; 
change_cell = @(rownum , vals) evalin(... 
            'base', ... 
            [... 
             'rownum =', int2str(rownum),';',... 
             'vals=[', num2str(vals),'];',... 
             'for i = 1:length(A);',... 
              'A{i}(rownum)=vals(i);',... 
             'end;'... 
            ]); 
change_cell(2, [6 8]) 
関連する問題