Borrar filtros
Borrar filtros

Struggling with array dot operator

1 visualización (últimos 30 días)
Deepayan Bhadra
Deepayan Bhadra el 17 de Dic. de 2017
Comentada: Deepayan Bhadra el 17 de Dic. de 2017
I've initialized
t = 0:0.1:20;
L = zeros(4,4,length(t));
I'm trying to assign values to L as follows:
t=0:0.1:20;
for i =1:length(t),
L(:,:,i) = D*diag([(t.^2+1).^2*(sin(t).^2), (t.^2+1).^2*(sin(2*t).^2), (t.^2+1).^2*(sin(3*t).^2), (t.^2+1).^2*(sin(4*t).^2), (t.^2+1).^2*(sin(5*t).^2)])*D';
end
D is a constant matrix. Essentially, there is a different L for each time instant. When I execute this, it gives
Error using *
Inner matrix dimensions must agree.
I'm tried so many combinations of the dot operators since this is a long operation.
Can someone help identify the problem?
Thanks a lot.

Respuesta aceptada

Matt J
Matt J el 17 de Dic. de 2017
Editada: Matt J el 17 de Dic. de 2017
Define the t-data before the for loop
T=0:0.1:20;
for i =1:length(T),
t=T(i);
L(:,:,i) = D*diag([(t.^2+1).*(t.^2+1).*(sin(t).^2) (t.^2+1).*(t.^2+1).*
(sin(2*t).^2) (t.^2+1).*(t.^2+1).*(sin(3*t).^2) (t.^2+1).*(t.^2+1).*(sin(4*t).^2)
(t.^2+1).*(t.^2+1).*(sin(5*t).^2)])*D';
end
Also, it is a good ideas to use commas to explictly separate entries of a vector/matrix.
  4 comentarios
Matt J
Matt J el 17 de Dic. de 2017
Editada: Matt J el 17 de Dic. de 2017
This works for me, if D is 5x5,
T=0:0.1:20;
for i =1:length(T),
t=T(i);
L(:,:,i) = D*diag([(t.^2+1).*(t.^2+1).*(sin(t).^2),...
(t.^2+1).*(t.^2+1).*(sin(2*t).^2),...
(t.^2+1).*(t.^2+1).*(sin(3*t).^2),...
(t.^2+1).*(t.^2+1).*(sin(4*t).^2),...
(t.^2+1).*(t.^2+1).*(sin(5*t).^2)])*D';
end
Deepayan Bhadra
Deepayan Bhadra el 17 de Dic. de 2017
This is working now :) Thanks!

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 17 de Dic. de 2017
In the computation for L you should be using t(i) not t

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by