在 MATLAB 中处理复数并创建新矩阵

Address Complex numbers and create new matrix in MATLAB

我有一个大小为 3x2x372 complex double 的复数矩阵。我只想处理这三个维度中的一个。因此,我使用以下代码使 table 更易于阅读:

new_output = abs(output);

事实上,新矩阵的大小是3x2x372 double。我想这会使进一步的计算更简单。所以我得到以下输出:

我现在想创建一个仅引用突出显示值的矩阵。所以理想情况下它的大小应该是 2x372 double.

制作一个 for 循环并将最后一行分配给一个新矩阵。

mat = zeroes(372, 2)

for k = 1:372
    a = val(:, :, k)
    mat(k, :) = a(1, :)
end

编辑:上面给出了一个 372x2 矩阵。使用下面得到一个 2x372 矩阵

mat = zeroes(2, 372)

mat(:, k) = a(1,:).'

循环中

实际上,您需要每个 "slice" 的最后一行,因此您可以通过以下方式获取:

new_output=data(size(data,1),:,:);

但这将为您提供与原始矩阵相同的维度,并且是 3D 的。要直接将其作为二维矩阵获取,请使用 squeeze:

new_output=squeeze(data(size(data,1),:,:));