dividing defined variable by named variable

7 Ansichten (letzte 30 Tage)
Liam Bates
Liam Bates am 28 Sep. 2022
Kommentiert: Image Analyst am 28 Sep. 2022
everytime i try to divide a defined variable by a calculated variable, it only outputs one number multiple times. What syntax am i missing?
d=1:.2:3;
a=sqrt((d.^2)*(3^2));
Y=d./a
  1 Kommentar
Stephen23
Stephen23 am 28 Sep. 2022
Bearbeitet: Stephen23 am 28 Sep. 2022
" it only outputs one number multiple times."
Because that is the correct result for your code, which is equivalent to d./(3*d)
"What syntax am i missing?"
Because you did not state the expected output nor what you are trying to achieve, we cannot guess the syntax that is required to achieve an unstated goal.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Image Analyst
Image Analyst am 28 Sep. 2022
Well yeah. Just look at the numbers:
d = 1 : 0.2 : 3
d = 1×11
1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000
a = sqrt((d.^2)*(3^2))
a = 1×11
3.0000 3.6000 4.2000 4.8000 5.4000 6.0000 6.6000 7.2000 7.8000 8.4000 9.0000
Y = d ./ a
Y = 1×11
0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333
They all look right to me. Exactly what output numbers did you expect? Tell me which element of Y it got wrong and should be a different number.
  3 Kommentare
Liam Bates
Liam Bates am 28 Sep. 2022
is it just how the matrix is set up? would i need a loop instead?
Image Analyst
Image Analyst am 28 Sep. 2022
You can define "a" differently then, like perhaps add noise
d = 1 : 0.2 : 3
d = 1×11
1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000
a = sqrt((d.^2)*(3^2)) + rand(size(d))
a = 1×11
3.3071 4.0240 4.6150 5.2096 5.6304 6.3306 7.5081 8.0647 7.8299 8.5545 9.7844
Y = d ./ a
Y = 1×11
0.3024 0.2982 0.3034 0.3071 0.3197 0.3159 0.2930 0.2976 0.3321 0.3273 0.3066

Melden Sie sich an, um zu kommentieren.


Walter Roberson
Walter Roberson am 28 Sep. 2022
a=sqrt((d.^2)*(3^2))
3^2 is 9 so inside the sqrt() you have 9*d^2. sqrt() of that is sqrt(9)*sqrt(d^2). For positive d that is 3*d
Y = d ./ a
So you have d divided by 3*d. For non-zero d that is going to be 1/3 no matter what the positive value of d is. For negative d you would get -1/3. For 0 you get nan.

Kategorien

Mehr zu Creating and Concatenating Matrices 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!

Translated by