How to square each element of a vector
597 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Daniel
am 31 Jan. 2012
Bearbeitet: John D'Errico
am 12 Mär. 2023
Hello everybody I have a very simple problem, but I don't know how to solve it.
I want to create a row vector from a certain range between two limits. So, given the limits 'a' and 'b', I do: x = [a:0.1:b] %I obtain a vector with equally spaced values between 'a' and 'b', with a 0.10 step.
The problem is that now, I need to elevate each value of 'x' to square, and so, obtain a new vector, let's say 'y', that will contain the values of 'x' squared. How do I do this???
Example: x = [0:1:4] ans = 0 1 2 3 4
I need y to be: 0 1 4 9 16
Thanks everyone!
Akzeptierte Antwort
Dr. Seis
am 31 Jan. 2012
y = x.^2;
Using the "." will effectively perform element-by-element mathematical operations. So if you had 2 MxM matrices, say A and B, then:
C = A*B;
Would yield normal matrix multiplication, while:
C = A.*B;
Would yield element-by-element multiplication of both matrices.
See example below:
>> A = eye(2)
A =
1 0
0 1
>> B = rand(2)
B =
0.9594 0.1745
0.9917 0.9862
>> A*B
ans =
0.9594 0.1745
0.9917 0.9862
>> A.*B
ans =
0.9594 0
0 0.9862
0 Kommentare
Weitere Antworten (4)
the cyclist
am 31 Jan. 2012
y = x.^2;
If you don't need the intermediate variable x, then you could simply have done
y = (a:0.1:b).^2;
0 Kommentare
Saurabh Palve
am 23 Jan. 2020
x=[2 5 1 6]^2
2 Kommentare
John D'Errico
am 12 Mär. 2023
Bearbeitet: John D'Errico
am 12 Mär. 2023
For any newbies who might see this question, of the many answers I see here, all the others are correct, but this answer by @Saurabh Palve is not correct in MATLAB. Without a dot in that operator, that line will fail.
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!