Magnitude of a matrix

47 次查看(过去 30 天)
I have a 1000 x 3 matrix where each column is associated the the x,y and z-direction. For each row I want to find the magnitude such that I have a 1000 x 1 array returned.
x=randi(100,1000,3);
X=norm(x(1:1000,1:3))
I tried this but I am only only getting a single number rather than a 1000 x 3 array.
Thanks
Dave :)

采纳的回答

Star Strider
Star Strider 2021-9-16
See if the vecnorm funcion (introduced in R2017b) will do what you want —
x=randi(100,1000,3);
X=vecnorm(x,2,2)
X = 1000×1
89.5600 69.0290 104.2785 84.2734 42.9185 76.2693 105.6504 96.7316 64.1950 113.6002
.
  2 个评论
David Harra
David Harra 2021-9-16
Thanks.
Could I just ask you about this line
X=vecnorm(x,2,2)
I can see this takes my matrix x as the first argument, but what does the 2,2 inside the bracket do?
Dave :)
Star Strider
Star Strider 2021-9-16
My pleasure!
The first 2 specifies the 2-norm (rather than others), and the second 2 specifies that the function is to take the norm across the rows (dimension 2) rather than down the columns (dimension 1, the default dimension) or other dimensions if the matrix had more than 2.
Specifying only the matrix would take the 2-norm of the columns.
.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

产品


版本

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by