MATLAB Answers

How does Matlab divide two row vectors by each other to get a scalar?

31 views (last 30 days)
Let's consider, A is a vector like shown:
A = [20 30 40];
and B is also a vector:
B = [5 10 20];
when you want to execute this operation:
C = B/A;
then you will get a scalar: 0.4137
if you want to check this answer by doing this:
C.*A
It should be got B again but you will get this vector instead:
ans =
8.2759 12.4138 16.5517
Could somebody explain what's going on?

  4 Comments

Show 1 older comment
Adam
Adam on 16 Oct 2019
doc mrdivide
explains that B/A is solving a set of linear equations x*A = B for x.
Clearly you can't expect to multiply A by any scalar and get B as the result. That is trivially obvious!
Stephen Cobeldick
Stephen Cobeldick on 16 Oct 2019
"It should be got B again"
Can you show us the system of equations for which this statement is true?
Osama Tabbakh
Osama Tabbakh on 16 Oct 2019
I was just an example for understanding how calculate matlab this scalar 0.4137 and why it is scalar.

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 16 Oct 2019
To expand slightly on that, ‘C’ is the least-squares estimate of the slope of with the y-intercept forced through the origin:
figure
plot(A,B,'p', A,C*A,'-r', [0 A(1)],C*[0 A(1)],':k')
axis([0 45 0 25])

  4 Comments

Show 1 older comment
Star Strider
Star Strider on 17 Oct 2019
As always, my pleasure.
Calculating the slope alone is straightforward (β is the slope parameter):
Set this equal to zero and solve to get:
If you want a more general solution, see the Wikipedia article on Linear least squares.

Sign in to comment.

More Answers (0)

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by