0
我有一個3×4×5的矩陣,我想給名稱的第三維['a','b','c','d','e']
。我該怎麼做呢? dataset
命令似乎只適用於矩陣?matlab:多維陣列名稱
我有一個3×4×5的矩陣,我想給名稱的第三維['a','b','c','d','e']
。我該怎麼做呢? dataset
命令似乎只適用於矩陣?matlab:多維陣列名稱
您可以將三維數組轉換成矩陣的單元陣列,然後這個單元陣列轉換成一個結構與所需的字段名稱:
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
等等:
>> isequal(y.b, x(:,:,2)) % check
ans =
logical
1
但是,請注意,保持數據爲3D陣列通常更快,更高效。因此,另一種方法是通過常量A = 1
,B = 2
等來定義所需的「名稱」,並將原始3D陣列索引爲x(:,:,A)
,x(:,:,B)
。
只需要在你的「字符串數組」中註釋'''''','b','c','d','e']'和'abcde'完全一樣。您需要使用單元格數組來生成一個字符串數組:'{'a','b','c','d','e'}' – Anthony