MATLAB Answers

Error Matrix must dimensions agree HELP!

1 view (last 30 days)
Humphrey Dogbe
Humphrey Dogbe on 16 Mar 2021
Answered: Deepak Meena on 21 Mar 2021
Get this error when running the code. Hbar, nbasis and mu are constants.
T = zeros(length(n));
n = linspace(1, nbasis, nbasis);
for j = 1:length(n)
for k = 1:length(n)
funT = @(x) (sqrt(.5).* sin(((j.*pi).*(x-0.6))./4)).* ((hbar.^2)./mu).* (sqrt(0.5).* ((n.^2 * pi.^2)./16) .* -sin((n.*pi).*(x-0.6))./4).* (sqrt(0.5).*sin(((k.*pi)).*(x-0.6))./4);
T(j,k) = integral(@(x) funT(x), 0.6, 4.6);
end
end
Please point me in the right direction, thank you!
  2 Comments
Humphrey Dogbe
Humphrey Dogbe on 16 Mar 2021
Hbar is a constant scalar. n is meant to be an array from 1 to 4. The n pasted above is referenced from an earlier point in the code

Sign in to comment.

Answers (1)

Deepak Meena
Deepak Meena on 21 Mar 2021
Hi ,
The error is coming because the size of the left side is 1-by-1 and the size of the right side is
1-by-4.
Also Change your integral line to this :
%code
P0 = integral( funT, 0.6, 4.6, 'ArrayValued', true );
I am storing the result of the integral in a temporary variable , you can store it as per your convenience
Thanks

Community Treasure Hunt

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

Start Hunting!