MATLAB Answers

how to debugg the error : size input must be integers

6 views (last 30 days)
Cassandra Soliman
Cassandra Soliman on 29 May 2020
Edited: per isakson on 29 May 2020
function u = Section1_4
% This function code is to plot u(x,y) = u1(x,y)+u2(x,y)
% Description: This file is specifically plotting the centre of the domain
% The analytical solution for the Laplace Equation for section 1.4
%Input parameters
% C0 = u1(x,y)
% C2 = u2(x,y)
% The following is the spatial parameters
L = 3/2; %length of the x-dimension (we only want the centre domain)
H = 1/2; % length of the y-dimension
T_1 = -5; % temperature profile
T_2 = -10; % temperature profile
nx = 1.5; % Number of grid points x-direction
ny = 0.5; % Number of grid points in the y direction
x = linspace(0,L,nx);
y = linspace(0,H,ny);
nfs = 50;
n = 1;
k = ((n*pi)/(L));
u =ones(nx,ny); %% line were the error is
% Analytical solution
for i=1:nx
for j=1:ny
for m = 1: nfs
upper_side = ((16*T_1/((n^3)*(pi)^3)))*(((1-cos(n*pi))/sinh(k*H)))*(sinh(k*y(j)))*(sin(k*x(j)));
lower_side = ((16*T_2/((n^3)*(pi)^3)))*(((1-cos(n*pi))/sinh(-k*H))).*(sinh(k*y-k*H)).*(sin(k*x(j)));
% full solution
u(i,j) = u(i,j) + upper_side + lower_side;
end
end
end
contourf(x,y,u');
pcolor(x,y,u');
shading interp;
title('Temperature Value at the Centre of Domain');
xlabel('x');
ylabel('y');
colorbar;
surf(x,y,u');
end

  0 Comments

Sign in to comment.

Answers (1)

per isakson
per isakson on 29 May 2020
Edited: per isakson on 29 May 2020
"how to debug"
Before trying to fix the problem see: Debug a MATLAB Program
Next set Pause on Errors
and run Section_4
>> Section1_4
Error using ones
Size inputs must be integers.
Error in Section1_4 (line 22)
u =ones(nx,ny); %% line were the error is
check the values of nx and ny
K>> nx,ny
nx =
1.5
ny =
0.5
K>>
They are not integers, which causes the error, and the next step will be to find out why.

  0 Comments

Sign in to comment.


Translated by