MATLAB Answers

0

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

Asked by Osama Tabbakh on 16 Oct 2019 at 10:23
Latest activity Commented on by Star Strider
on 17 Oct 2019 at 14:17
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
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!
"It should be got B again"
Can you show us the system of equations for which this statement is true?
I was just an example for understanding how calculate matlab this scalar 0.4137 and why it is scalar.

Sign in to comment.

Products


Release

R2019b

1 Answer

Answer by Star Strider
on 16 Oct 2019 at 14:27
 Accepted Answer

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
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.
As always, my pleasure!

Sign in to comment.