integral of a matrix
Show older comments
I want to take the integral of an exponetial of a matrix but I got this error and dont know how fix it:
'Unable to perform assignment because the indices on the left side are not compatible with the size of
the right side.
Error in Untitled7 (line 12)
ggg(ss)=integral(fun,0,T,'ArrayValued',true);'
thanks in advance
clc
clear
close all
M=ones(3,3);
Dmat=[1;2;3];
fun=@(t)expm(-M.*t)*Dmat;
T=1e-2;
g=integral(fun,0,T,'ArrayValued',true);
4 Comments
Walter Roberson
on 19 Jun 2021
ss is not defined anywhere obvious, and you did a "clear" so we know it is not in the workspace. The code should error about ss not being defined.
raha ahmadi
on 19 Jun 2021
Walter Roberson
on 19 Jun 2021
And when you do not have that (ss) in there, then no error message is emitted.
I notice your tags mention expm, which is the matrix exponential, but your code uses exp() which is element-by-element exponential.
raha ahmadi
on 19 Jun 2021
Accepted Answer
More Answers (1)
Scott MacKenzie
on 19 Jun 2021
You note:
I want to take the integral of an exponetial of a matrix
But,
exp(-M.*t)*Dmat;
is a vector, not a matrix. Try using the dot operator in your function definition:
exp(-M.*t).*Dmat;
1 Comment
raha ahmadi
on 19 Jun 2021
Categories
Find more on Mathematics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!