矩阵中每列的大小

时间:2014-02-10 00:28:17

标签: 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(x1000,y1000,z1000)]

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

norm(input(3,:))将为您提供第三行1000个元素的标准。

简单的解决方案就是运行for循环。

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

答案 1 :(得分:0)

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