0
在Matlab中,我希望有一個矩陣,其中每個元素是一個向量,這樣我就可以識別存儲載體如x(1,2) = vec5
或x(3,2) = vec1
等假設:矩陣每個元素表示矢量
x=[ vec1 vec2 vec3; vec4 vec5 vec6; vec2 vec1 vec9];
我正在思考「細胞矩陣」甚至是三維矩陣。用盡想法! :s我會感謝您的幫助
在Matlab中,我希望有一個矩陣,其中每個元素是一個向量,這樣我就可以識別存儲載體如x(1,2) = vec5
或x(3,2) = vec1
等假設:矩陣每個元素表示矢量
x=[ vec1 vec2 vec3; vec4 vec5 vec6; vec2 vec1 vec9];
我正在思考「細胞矩陣」甚至是三維矩陣。用盡想法! :s我會感謝您的幫助
如果真的每個元素都應該是一個向量,那麼一個單元格是最靈活的解決方案,因爲您可以使用不同長度的向量。
vec1 = 1:2;
vec2 = 1:3;
vec3 = 1:4;
x{1,1} = vec1;
x{2,1} = vec2;
x{2,2} = vec3;
x
x =
[1x2 double] []
[1x3 double] [1x4 double]
並訪問使用x(1,1)
,x(2,1)
等未使用的元素包含一個emtpy矢量的矢量。
如果所有矢量具有相同的長度,則將它們存儲在矩陣或3D數組中,例如,
vec1 = rand(1, 3);
vec2 = rand(1, 3);
vec3 = rand(1, 3);
%# Matrix with one vector per column.
x = [vec1.', vec2.', vec3.'];
x =
0.9649 0.9572 0.1419
0.1576 0.4854 0.4218
0.9706 0.8003 0.9157
%# 3D array
y = nan(2, 2, length(vec1));
y(1,1,:) = vec1;
y(1,2,:) = vec2;
y(2,2,:) = vec3;
y
y(:,:,1) =
0.9649 0.9572
NaN 0.1419
y(:,:,2) =
0.1576 0.4854
NaN 0.4218
y(:,:,3) =
0.9706 0.8003
NaN 0.9157
在3D情況下,未使用的元素被初始化爲NaN
。如果您希望它們爲零,請改爲使用y = zeros(2, 2, length(vec1));
。