Calling function with no input argument

AI Thread Summary
The discussion revolves around a user encountering issues when calling a MATLAB function that does not take any input arguments. The function is defined correctly, but the user mistakenly includes parentheses when calling it, which leads to the program halting. It is clarified that in MATLAB, when calling a function with no inputs, parentheses should not be used. Additionally, the importance of consulting a manual or textbook for reference is emphasized. The conversation highlights common pitfalls in function definition and invocation in MATLAB programming.
mushi
Messages
23
Reaction score
0
Hi guys,

I am going to ask another very stupid question. But surprisingly, I could not find any help on it on internet. My question is:

I have defined a function which doesn't take any any input and one output. When I called it, the program halts. I have checked the function and it is working fine seperately. My be i am making mistake in calling it. Her is how I defined it:

function [sumout] = sortabc()
...
end

Here is how I am calling it:
sumout = sortabc();


Can anybody kindly tell me if I am making any mistake in calling ir defining the function sortabc.

Regards.
 
Engineering news on Phys.org
I guess you are talking Matlab, right?

I don't use matlab, but I would like to think that I am a good detective since I do fine in my programming and debugging. So, here are some stupid suggestions, not knowing MATLAB and simply having done a google on function definitions in matlab:

do you have a file named sortabc.m ?

is MATLAB case sensitive?

what does the file name look like from the file system?

are you working on Windows or Linux?

do you need to enclose the output argument in square brackets? like
[sumout] = sortabc()
or is that only needed when you have more than one argument?

Otherwise, do what I refer to "baby steps" ...go back and define a trivial function that should work, like one that does nothing important but returns, say 9... and go from there...if that does not work, maybe something along what I asked above is happening?
 
mushi said:
I have defined a function which doesn't take any any input and one output. When I called it, the program halts. I have checked the function and it is working fine seperately. My be i am making mistake in calling it. Her is how I defined it:

function [sumout] = sortabc()
...
end

Here is how I am calling it:
sumout = sortabc();Can anybody kindly tell me if I am making any mistake in calling ir defining the function sortabc.
The biggest mistake you are making is not having a manual or textbook in front of you and open at some pages of code, any code, where there is plenty of code statements for you to refer to. I suggest that you always do that.

You don't say what you are coding in. But based on my extensive coding experience :-p
I can say what you wrote looks wrong or at least weird. (Though that's not to say it's not right.)
Code:
 Here is how I am calling it:
sumout = sortabc();
Okay, so you are assigning to a variable whatever is returned by your function sortabc.

Code:
function [sumout] = sortabc()
...
end
So I am perplexed to see this. I don't expect to see sumout mentioned in the function's definition, since I have already concluded sumout is a variable in your main program. And you seem to be telling the function to return the value of a call to function sortabc(). I'd expect to see you assign something to the function's name like:
Code:
fuction sortabc()
...
sortabc='thesortedstring'
end

As I said, I don't recognize what you are programming in. But if you open a manual or something filled with lots of code, flip through it and you will soon find a working example of what you are wanting to do.
 
I had the same problem, and similarly could not find an answer online. But here it is:

Assuming you are using Matlab, you do not need the parentheses when you call the function. You defined it correctly (although you shouldn't need brackets):
function sumout = sortabc();

When you call a function with no inputs, do not use parentheses:
sumout = sortabc;

Using the same variable names shouldn't be a problem. Their domains don't overlap.
 
Thread 'How can I find the cleanout for my building drain?'
I am a long distance truck driver, but I recently completed a plumbing program with Stratford Career Institute. In the chapter of my textbook Repairing DWV Systems, the author says that if there is a clog in the building drain, one can clear out the clog by using a snake augur or maybe some other type of tool into the cleanout for the building drain. The author said that the cleanout for the building drain is usually near the stack. I live in a duplex townhouse. Just out of curiosity, I...
Hi all, I have a question. So from the derivation of the Isentropic process relationship PV^gamma = constant, there is a step dW = PdV, which can only be said for quasi-equilibrium (or reversible) processes. As such I believe PV^gamma = constant (and the family of equations) should not be applicable to just adiabatic processes? Ie, it should be applicable only for adiabatic + reversible = isentropic processes? However, I've seen couple of online notes/books, and...
Back
Top