在 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),:,:));
我有一个大小为 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),:,:));