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.

 採用された回答

Matt J
Matt J 2017 年 12 月 17 日
編集済み: Matt J 2017 年 12 月 17 日

1 投票

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 件のコメント

Deepayan Bhadra
Deepayan Bhadra 2017 年 12 月 17 日
Hi Matt, I've made the question more compact but the error persists since it seems not because of 't' definition but rather due to dot array multiplication. Could you check that? Thanks.
Matt J
Matt J 2017 年 12 月 17 日
What are the dimensions of D?
Matt J
Matt J 2017 年 12 月 17 日
編集済み: Matt J 2017 年 12 月 17 日
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 2017 年 12 月 17 日
This is working now :) Thanks!

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2017 年 12 月 17 日

0 投票

In the computation for L you should be using t(i) not t

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by