i define the function, boundary and initial condition of the heat equation in a standard form ,when i try to plot the solution with x direction, it gives me an error that x =linspace () is not inside any function. Do i need to create a function file for each function in order to put the x range inside?

Antworten (1)

VBBV
VBBV am 20 Mär. 2024
Bearbeitet: VBBV am 20 Mär. 2024

1 Stimme

Cut all the lines from 1 till 16 and place it after line 26.
Function declarations must be done at the end of the code in your script file (with properly termination using keyword end ... in your case its done correctly)

5 Kommentare

VBBV
VBBV am 20 Mär. 2024
Bearbeitet: VBBV am 20 Mär. 2024
E.g. put all the functions at the end of code in yuur script as below, then run the code again
x = linspace(0,1,25);
y = linspace(0,1,25);
m = 1;
% ... yourcode
% ... yourcode
view([150 25])
function [c,f,s] = heatcyl(x,t,u,dudx) % similarly for other functions
end
suen
suen am 21 Mär. 2024
Thank you very much, but I have a question. Usually, we need to define the function first, which is letting the computer understand what inputs I have before solving the main problem. However, why does the arrangement order have to be reversed in this situation?
Torsten
Torsten am 21 Mär. 2024
Bearbeitet: Torsten am 21 Mär. 2024
It's just a MATLAB convention that the functions must follow the script part. And in my opinion it's reasonable because the script part is executed first and usually calls the functions.
I don't know where you find that
Usually, we need to define the function first, which is letting the computer understand what inputs I have before solving the main problem.
The inputs are not given in the functions, but in the script part (main program) that calls the functions.
suen
suen am 21 Mär. 2024
thank you so much
VBBV
VBBV am 21 Mär. 2024
Bearbeitet: VBBV am 21 Mär. 2024
@suen If your code begins with keyword function in line 1 , then by MATLAB convention the file is considered as function file for which it expects inputs and/or outputs. Since the inputs to function are present later part of your code and defined outside the function body, MATLAB throws such error.
Note that each function must end using keyword end except when there is only one function defined inside the script file.
As mentioned by @Torsten its just MATLAB convention.

Melden Sie sich an, um zu kommentieren.

Produkte

Gefragt:

am 20 Mär. 2024

Bearbeitet:

am 21 Mär. 2024

Community Treasure Hunt

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

Start Hunting!

Translated by