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中的值不匹配,这是一个错误还是需要其他处理。可能重复商定的类似问题,但细微差异,提到的重复是指重塑矩阵,而这更多的是关于删除维度。好吧,你可以说这是同一件事,但对于任何搜索答案的人来说,他们可能会问一些稍微不同的问题,因此可能找不到问题。也许可以更新重复问题,以涵盖“两种”情况。