Why I am unable to run my program?

2 views (last 30 days)
Hi, I really need help. I cannot run my program. When I run, it shows ' Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 121-by-1'. Please, I really need help.
%Parameters to define the governing casson fluid equation and the
%parameters value range
L = 1; % Length of the artery
maxk= 10; % Number of time steps
tmax = 0.1; % Maximum time
delta_t = tmax/maxk; % Time step
n = 10; % Number of space steps
delta_r = L/n; % Radial direction
Beta1 = 0.025; % Casson fluid parameter
A0 = 0.2; % Amplitude of systolic pressure gradient
A1 = 0.4; % Amplitude of diastolic pressure gradient
omega = pi/4;
%Initial conditions of velocity
for i = 1:n+1
u(i,1) = 0;
disp(u(i,1));
end
% Boundary conditions
for j=1:maxk+1
u(1,j) = 0;
u(n,j) = 0;
end
% Implementation of the explicit
for j=1:maxk % Time Loop
for i=2:n % Space Loop
S10 = (u(2,j)-2*u(1,j)+u(2,j))/((delta_r)^2);
S20 = (u(2,j)-u(1,j))/(delta_r);
u(1,j+1) = u(1,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S10) + 1/r* (S20)));
disp(u(1,j+1))
S1 = (u(i+1,j)-2*u(i,j)+u(i-1,j))/((delta_r)^2);
S2 = (u(i+1,j)-u(i,j))/(delta_r);
u(i,j+1) = u(i,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S1) + 1/r* (S2)));
disp(u(i,j+1))
S1n = (u(n+1,j)-2*u(n,j)+u(n-1,j))/((delta_r)^2);
S2n = (u(n+1,j)-u(n,j))/(delta_r);
u(n,j+1) = u(n,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S1n) + 1/r* (S2n)));
disp(u(n,j+1))
end
end
%Graphical representation of the velocity at different selected times
plot(u);
%figure(1)
%plot(u(:,1),r,'-',u(:,2),r,'-',u(:,3),r,'-',u(:,6),r,'-')
%tittle('velocity within explicit method')
%xlabel('r')
%label('u')
%legend('dt=1','dt=2','dt=3','dt=6')
  2 Comments
VBBV
VBBV on 28 Dec 2021
There is no error if you assign correct values to variables r and t

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 28 Dec 2021
Try this:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clearvars;
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fprintf('Beginning to run %s.m ...\n', mfilename);
%Parameters to define the governing casson fluid equation and the
%parameters value range
L = 1; % Length of the artery
maxk= 10; % Number of time steps
tmax = 0.1; % Maximum time
% Define t and r
allTimes = linspace(0, tmax, maxk)
r = 1; % Whatever...?????
delta_t = tmax/maxk; % Time step
n = 10; % Number of space steps
delta_r = L/n; % Radial direction
Beta1 = 0.025; % Casson fluid parameter
A0 = 0.2; % Amplitude of systolic pressure gradient
A1 = 0.4; % Amplitude of diastolic pressure gradient
omega = pi/4;
%Initial conditions of velocity
for i = 1:n+1
u(i,1) = 0;
disp(u(i,1));
end
% Boundary conditions
for j=1:maxk+1
u(1,j) = 0;
u(n,j) = 0;
end
% Implementation of the explicit
for j=1:maxk % Time Loop
t = allTimes(j);
for i=2:n % Space Loop
S10 = (u(2,j)-2*u(1,j)+u(2,j))/((delta_r)^2);
S20 = (u(2,j)-u(1,j))/(delta_r);
u(1,j+1) = u(1,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S10) + 1/r * (S20)));
disp(u(1,j+1))
S1 = (u(i+1,j)-2*u(i,j)+u(i-1,j))/((delta_r)^2);
S2 = (u(i+1,j)-u(i,j))/(delta_r);
u(i,j+1) = u(i,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S1) + 1/r * (S2)));
disp(u(i,j+1))
S1n = (u(n+1,j)-2*u(n,j)+u(n-1,j))/((delta_r)^2);
S2n = (u(n+1,j)-u(n,j))/(delta_r);
u(n,j+1) = u(n,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S1n) + 1/r * (S2n)));
disp(u(n,j+1))
end
end
%Graphical representation of the velocity at different selected times
plot(u, '-', 'LineWidth', 2);
grid on;
fontSize = 16;
xlabel('space', 'FontSize', fontSize)
ylabel('u', 'FontSize', fontSize)
  8 Comments
Nur Nadhirah Syed Malik
Nur Nadhirah Syed Malik on 30 Dec 2021
How to do that? Can you help me?

Sign in to comment.

More Answers (1)

Kevin
Kevin on 28 Dec 2021
I have tried running your code. MATLAB complains the variable "t" is not defined in the line inside the double for-loop:
u(1,j+1) = u(1,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S10) + 1/r* (S20)));
To debug this kind of problem, use the MATLAB editor to step through the code. You can set breakpoint.
Kevin
  1 Comment
Nur Nadhirah Syed Malik
Nur Nadhirah Syed Malik on 28 Dec 2021
Alright, noted. Thank you so much for helping me

Sign in to comment.

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!