Matlab:如何更改矩阵的存储方式?从1x1x3到1x3?
我目前有:Matlab:如何更改矩阵的存储方式?从1x1x3到1x3?,matlab,Matlab,我目前有: val(:,:,1) = 0.7216 val(:,:,2) = 0.7216 val(:,:,3) = 0.7216 但是我想要 0.7216, 0.716, 0.721. 我可以做什么样的手术来做到这一点 val = val(:)'; 这应该能奏效 (:)将其转换为列 ”将其转换为一行函数将执行以下操作: % Arrange the elements of val into a 1x3 array val = reshape(val, [1
val(:,:,1) =
0.7216
val(:,:,2) =
0.7216
val(:,:,3) =
0.7216
但是我想要
0.7216, 0.716, 0.721.
我可以做什么样的手术来做到这一点
val = val(:)';
这应该能奏效
(:)
将其转换为列
”
将其转换为一行函数将执行以下操作:
% Arrange the elements of val into a 1x3 array
val = reshape(val, [1 3]);
由于要转换为行向量,因此以下语法也可以使用:
val = val(:)';
因为val(:)
创建一个列向量,转置操作符”
然后将该列向量转置为行向量。如果第三维中的元素数量不同,则该函数是另一个选项
>> squeeze(val)'
ans =
0.7216 0.7216 0.7216
假设您需要这些数字-问题中所需的数字实际上与矩阵val中的值不匹配。val=val(:);将创建一个3x1列向量,而不是问题所针对的1x3行向量。您想要的数字实际上与val中的值不匹配,这是一个错误还是需要其他处理。可能重复商定的类似问题,但细微差异,提到的重复是指重塑矩阵,而这更多的是关于删除维度。好吧,你可以说这是同一件事,但对于任何搜索答案的人来说,他们可能会问一些稍微不同的问题,因此可能找不到问题。也许可以更新重复问题,以涵盖“两种”情况。