Matlab 矩阵中每列的大小

Matlab 矩阵中每列的大小,matlab,matrix,Matlab,Matrix,我有一个3行1000列的输入矩阵。每列表示和x、y、z变量。我想找到每列的大小,并将其存储在一个有1行和1000列的输出矩阵中 这是我目前的尝试,但似乎不起作用: output(1,:) = norm(input(3,:)); 我的输入矩阵如下所示: x1, x2,...,x1000 y1, y2,...,y1000 z1, z2,...,z1000 我希望我的输出矩阵如下所示: [magnitude(x1,y1,z1), magnitude(x2,y2,z2),...,magnitude(

我有一个3行1000列的输入矩阵。每列表示和x、y、z变量。我想找到每列的大小,并将其存储在一个有1行和1000列的输出矩阵中

这是我目前的尝试,但似乎不起作用:

output(1,:) = norm(input(3,:));
我的输入矩阵如下所示:

x1, x2,...,x1000
y1, y2,...,y1000
z1, z2,...,z1000
我希望我的输出矩阵如下所示:

[magnitude(x1,y1,z1), magnitude(x2,y2,z2),...,magnitude(x1000,y1000,z1000)]
任何帮助都将不胜感激。

norm(输入(3,:)
将为您提供第三行1000个元素的norm

简单的解决方案是只运行一个for循环

output = zeros(1,1000); %Preallocate space
for i = 1:length(output)  
  output(i) = norm(input(:, i));
end

MATLAB的范数函数仅适用于单个向量。设A为要查找范数的矩阵的名称。然后,此命令执行以下操作:

norm_A = sqrt(sum(A.*A));
以下是一个例子:

>> A = [1:5; 1:5; 1:5]

A =

     1     2     3     4     5
     1     2     3     4     5
     1     2     3     4     5

>> norm_A = sqrt(sum(A.*A))

norm_A =

    1.7321    3.4641    5.1962    6.9282    8.6603