だから私はベクトルXのセル配列を持っています:
octave:149> X
X =
{
[1,1] =
1 17 20
[2,1] =
5 20 22 27
[3,1] =
2 17 18 21
}
空のベクトルYを作成します。
octave:150> Y = []
Y = [](0x0)
次に、「Y = unique([Y x])」を使用して、Xの各値に対して無名関数を呼び出します。
octave:151> cellfun(@(x)(Y = unique([Y x])),X,'UniformOutput',false)
ans =
{
[1,1] =
1 17 20
[2,1] =
1 5 17 20 22 27
[3,1] =
1 2 5 17 18 20 21 22 27
}
わかりました、しかし今Yはまだ空です:
octave:152> Y
Y = [](0x0)
octave:153>
明らかに、無名関数内のY名は、独自のバージョンのYの新しいストレージを作成してバインドしました。
Octave / MATLABのストレージと名前解決のルールは何ですか?ストレージはいつ変数に割り当てられますか?2つの同じ名前が同じ変数にバインドされるのはいつですか?(上記の無名関数でYの値を有効にする方法はありますか?)