我有一个包含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)]
非常感谢任何帮助。
答案 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