Why is 1/ones(3,1) OK while 1/ones(1,3) is not OK?

1 visualización (últimos 30 días)
Yuki Koyama
Yuki Koyama el 19 de Sept. de 2019
Editada: David Goodmanson el 20 de Sept. de 2019
When I tried the code
1/ones(1,3)
matlab said this is invalid because the dimension is not matched.
Then I tried the code
1/ones(3,1)
this returns the result
ans =
1 0 0
I don't know why the ans is like this.
  1 comentario
Stephen23
Stephen23 el 19 de Sept. de 2019
Editada: Stephen23 el 19 de Sept. de 2019
"I don't know why the ans is like this."
Did you read the mrdivide documentation, to know what you are actually calculating?:

Iniciar sesión para comentar.

Respuesta aceptada

David Goodmanson
David Goodmanson el 19 de Sept. de 2019
Editada: David Goodmanson el 20 de Sept. de 2019
Hi Yuki,
In the expression x = 1/ones(3,1) multiplying both sides on the right by ones(3,1) gives
x*ones(3,1) = 1.
The row vector x = [1 0 0] fills the bill, since
[1 0 0] x [1
1 = 1.
1]
Note that the answer is not unique, since
x = [0 1 0], x = [1/3 1/3 1/3] etc. all work just as well.
As to why ones(1,3) errors out, in that case you would have
x*ones(1,3) = 1.
If you review the rule for sizes of rows and columns in matrix multiplication, i.e. (mxn) x (nxq) = mxq, you will find that the eqn above does not work.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by