MATLAB Answers

integral of a matrix

6 views (last 30 days)
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
raha ahmadi
raha ahmadi on 19 Jun 2021
two mistakes in 5 lines code! good for me !!
I m really sorry and thank you very much. I m very tired and ...I corrected it
I hope you best wishes

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 19 Jun 2021
format long g
M = ones(3,3);
Dmat = [1;2;3];
fun = @(t)expm(-M.*t)*Dmat;
T = 1e-2;
g = integral(fun,0,T,'ArrayValued',true);
g
g = 3×1
0.00970297763432788 0.0197029776343279 0.0297029776343279
  1 Comment
raha ahmadi
raha ahmadi on 19 Jun 2021
I appreciate your attention and hope you all best

Sign in to comment.

More Answers (1)

Scott MacKenzie
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
raha ahmadi on 19 Jun 2021
sorry you are right but in fact I need to calculate the integal of a multiplication of a exponensial of a matrix by a column vector "Dmat". Its a matrix multiplication not an element-wise multiplication.
Best regards

Sign in to comment.

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!