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!

Translated by