Matlab 矩阵中每列的大小
我有一个3行1000列的输入矩阵。每列表示和x、y、z变量。我想找到每列的大小,并将其存储在一个有1行和1000列的输出矩阵中 这是我目前的尝试,但似乎不起作用: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(
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