Clear Filters
Clear Filters

Magnitude of a vector

2,989 views (last 30 days)
Philosophaie
Philosophaie on 5 Sep 2013
Answered: namal on 23 Aug 2024
syms x y z
r = [x y z]
rmag???
rmag should equal (x^2 + y^2 + z^2)^0.5
  4 Comments
Prashant C
Prashant C on 3 Jun 2015
use the function norm(r) or mag=sqrt(sum(r.*r))
Abdullraheem Diab
Abdullraheem Diab on 30 Jun 2019
Sqrt(sum(r.^2))

Sign in to comment.

Accepted Answer

Shashank Prasanna
Shashank Prasanna on 5 Sep 2013
Edited: MathWorks Support Team on 22 May 2019
This works perfectly fine on MATLAB R2013a:
>> syms x y z
r = [x y z];
norm(r)
  2 Comments
Shashank Prasanna
Shashank Prasanna on 5 Sep 2013
Edited: MathWorks Support Team on 22 May 2019
What version of MATLAB are you using? Can you confirm that you see the file when you run this:
>> which sym/norm
Bhuvana Krishnaraj
Bhuvana Krishnaraj on 3 Jun 2019
2015.a version >>which sym/nom C:\matlab\toolbox\symbolic\@!sym\norm.m

Sign in to comment.

More Answers (3)

Azzi Abdelmalek
Azzi Abdelmalek on 5 Sep 2013
m=sqrt(x^2+y^2+z^2)

Tariq Shajahan
Tariq Shajahan on 11 May 2015
if 'r' is a vector. norm(r), gives the magnitude only if the vector has values. If r is an array of vectors, then the norm does not return the magnitude, rather the norm!!
  2 Comments
John D'Errico
John D'Errico on 11 Mar 2023
If r is an array of vectors, what would you expect? How does MATLAB know, for example, that you want to compute the norm of each row of an array, as opposed to a matrix norm? In fact, when MATLAB is given a double precision array, and you use norm, it computes the MATRIX norm.
A = magic(5)
A = 5×5
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
norm(A)
ans = 65
There is no reason to expect it should instead compute the norm of each row, or each column. That would be wrong.
norm(sym(A))
ans = 
65
And norm is able to do the same thing for a symbolic array. So there should be no surprise here.
Steven Lord
Steven Lord on 11 Mar 2023
To compute the norm of each row or column of a numeric matrix use vecnorm instead of norm.
A = magic(5);
vecnorm(A, 2, 1) % default 2-norm in dimension 1
ans = 1×5
32.4808 33.2415 34.7131 33.2415 32.4808
vecnorm(A, 1, 2) % 1-norm in dimension 2
ans = 5×1
65 65 65 65 65

Sign in to comment.


namal
namal on 23 Aug 2024
% Define the vector N = [-3, 7, -5]; % Calculate the magnitude of the vector magnitude = norm(N); % Calculate the unit vector unit_vector = N / magnitude; % Display the unit vector disp('Unit vector in the direction of N:'); disp(unit_vector);

Categories

Find more on Mathematics in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!