0
私は3行4列5列の行列を持ち、第3次元に名前をつけたいとします['a','b','c','d','e']
。これはどうすればいいですか? dataset
コマンドは行列に対してのみ機能しますか?matlab:多次元配列の名前
私は3行4列5列の行列を持ち、第3次元に名前をつけたいとします['a','b','c','d','e']
。これはどうすればいいですか? dataset
コマンドは行列に対してのみ機能しますか?matlab:多次元配列の名前
あなたはあなたの3D配列は、行列のセル配列に変換することができ、その後、このセル配列は、目的のフィールド名を持つ構造体に変換します。
x = rand(3,4,5); % example input
y = num2cell(x, [1 2]); % to cell of matrices spanning the first and second dims
y = cell2struct(y, {'a' 'b' 'c' 'd' 'e'}, 3); % to struct with desired field names
次にあなたがy.a
、y.b
としての行列を参照することができますしかし、通常、データを3D配列として保持する方が、より高速で効率的であることに注意してください。その代わりに、定数「A = 1
」、「B = 2
」などを使用して希望の「名前」を定義し、オリジナルの3D配列にインデックスx(:,:,A)
,x(:,:,B)
としてインデックスを付けることもできます。
あなたの "文字列配列"、[['a'、 'b'、 'c'、 'd'、 'e'] 'は' 'abcde ''とまったく同じです。 '{'a'、 'b'、 'c'、 'd'、 'e'}'文字列配列を生成するには、セル配列を使用する必要があります。 – Anthony