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

31 views (last 30 days)
Osama Tabbakh on 16 Oct 2019
Commented: Star Strider on 17 Oct 2019
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?

Show 1 older comment
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 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 on 16 Oct 2019
I was just an example for understanding how calculate matlab this scalar 0.4137 and why it is scalar.

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])

Show 1 older comment
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.
Osama Tabbakh on 17 Oct 2019
Thanks!
Star Strider on 17 Oct 2019
As always, my pleasure!

R2019b

### Community Treasure Hunt

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

Start Hunting!

Translated by