Magnitude of a vector

1.156 Ansichten (letzte 30 Tage)
Philosophaie
Philosophaie am 5 Sep. 2013
Beantwortet: namal am 23 Aug. 2024
syms x y z
r = [x y z]
rmag???
rmag should equal (x^2 + y^2 + z^2)^0.5
  4 Kommentare
Prashant C
Prashant C am 3 Jun. 2015
use the function norm(r) or mag=sqrt(sum(r.*r))
Abdullraheem Diab
Abdullraheem Diab am 30 Jun. 2019
Sqrt(sum(r.^2))

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Shashank Prasanna
Shashank Prasanna am 5 Sep. 2013
Bearbeitet: MathWorks Support Team am 22 Mai 2019
This works perfectly fine on MATLAB R2013a:
>> syms x y z
r = [x y z];
norm(r)
  2 Kommentare
Shashank Prasanna
Shashank Prasanna am 5 Sep. 2013
Bearbeitet: MathWorks Support Team am 22 Mai 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 am 3 Jun. 2019
2015.a version >>which sym/nom C:\matlab\toolbox\symbolic\@!sym\norm.m

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

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

Tariq Shajahan
Tariq Shajahan am 11 Mai 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 Kommentare
John D'Errico
John D'Errico am 11 Mär. 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 am 11 Mär. 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

Melden Sie sich an, um zu kommentieren.


namal
namal am 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);

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by