Unable to perform assignment because the left and right sides have a different number of elements.

조회 수: 1 (최근 30일)
Is there anyone who can help me with this? I cannot for the life of me figure out why this is not running. I'm trying to solve this differential equation using Euler's method, but no matter what I do I always get this error. All the matrix dimensions agree as well. The error is at the very last line.
%Declare inputs
k1 = 0.2; %W/(m^2K)
k2 = 5; %Make constant for now [1:10:]; %W/(m^2K)
k3 = 0.5; %W/(m^2K)
Ain = 0.5; %m^2
Cair = 1005; %J/(kgK)
rho = 1.2; %kg/m^3
%Cabin Area and Volume Values
L = 5; %m
W = 6; %m
H1 = 3; %m
H2 = 3; %m
A1 = 2*H1*W + 2*L*H1; %m^2
A2 = W*L; %m^2
A3 = 2*L*(3/sind(45)); %m^2 Only roof, neglect walls of second floor
V1 = L*W*H1; %m^3
V2 = .5*W*L*H2; %m^3
%Time and Temp arrays
Lt = 2*86400; %s
h = 1.5; %Step size, I think 1 second is fair
N = Lt/h; %
%Preallocate arrays
T1 = zeros(1,N); %Floor 1
T2 = zeros(1,N); %Floor 2
Q1 = zeros(1,N);
Q2 = zeros(1,N);
Q3 = zeros(1,N);
t = zeros(1,N); %Time domain
Tout = -10*sin(2*pi*t/86400); %C
%Initial conditions
t(1) = 0;
T1(1) = 5; %C
T2(1) = 7; %C
% %Q Equations
Q1 = k1*(T1-Tout);
Q2 = k2*(T1-T2+5);
Q3 = k3*(T2-Tout);
%Qin = linspace(0,2500,N); %W/(m^2K)
Qin = 1500; %W/(m^2K)
fTemp1 = @(t,T1) (Qin*Ain-Q1*A1-Q2*A2)/(Cair*V1*rho)
% Differential Equations
for i = 1:N-1
t(i+1) = t(i) + h;
T1(i+1) = T1(i+1)+h*fTemp1(t(i),T1(i));
end
  댓글 수: 1
Rik
Rik 2021년 4월 4일
I recovered the removed content from the Google cache (something which anyone can do). Editing away your question is very rude. Someone spent time reading your question, understanding your issue, figuring out the solution, and writing an answer. Now you repay that kindness by ensuring that the next person with a similar question can't benefit from this answer.

댓글을 달려면 로그인하십시오.

답변 (1개)

Walter Roberson
Walter Roberson 2021년 4월 2일
T1 = zeros(1,N); %Floor 1
array
Q1 = k1*(T1-Tout);
array because T1 is array
fTemp1 = @(t,T1) (Qin*Ain-Q1*A1-Q2*A2)/(Cair*V1*rho)
Uses the array Q1 and therefore computes an array
T1(i+1) = T1(i+1)+h*fTemp1(t(i),T1(i));
You are trying to store the array of results in a scalar
t = zeros(1,N); %Time domain
Tout = -10*sin(2*pi*t/86400); %C
t is all 0 so that is sin(0). What is the point of that?
  댓글 수: 3
Chance Morine
Chance Morine 2021년 4월 2일
for more context, the function is supposed to be a differential equation. with it being dT1/dt
Chance Morine
Chance Morine 2021년 4월 2일
And I already preallocated T1 as an array earlier. So, im completely lost as to why it wont run.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by