Not enough input arguements

3 views (last 30 days)
max muster
max muster on 15 Mar 2024
Edited: VBBV on 16 Mar 2024
Hello i get the error " Not enough input arguments"
I have a function with 2 inputs. A variable called anz and a matrix (8x10). Matrix is a exported excel.
pls help
excelDatei = ' test.xlsx'
tabelle= 'tabelle 1'
zellBereich = 'A1:J9'
anz=height(matrix)
matrix=readtable(excelDatei, 'Sheet', tabelle, 'Range', zellBereich);
testfct(anz, matrix)
function [result 1, result 2, result3] = testfct (anz, matrix)
for i : anz
element=matrix.ID(i)
end
  6 Comments
Dyuman Joshi
Dyuman Joshi on 15 Mar 2024
Edited: Dyuman Joshi on 15 Mar 2024
"but whats wrong with my code"
As mentioned, there is a syntax error in the for loop. See - for; also, compare the for loop section in your code and Stephen's code.
You have specified 3 outputs for the function, yet the code does not define any of them.
It's not clear what you want to do. If you want to get all values of ID column/variable from table matrix, you can directly assign it like this -
element = matrix.ID;
If that is not what you want to do, please specify.
Additionally, use a semi-colon to suppress the outcome of the lines.
Stephen23
Stephen23 on 15 Mar 2024
"I get this error not on every compile but sometimes"
Please show us the complete error message. This means all of the red text.

Sign in to comment.

Answers (1)

VBBV
VBBV on 15 Mar 2024
Edited: VBBV on 15 Mar 2024
anz=height(matrix)

Put this line after readtable function where you read the data from Excel. The input to the function height is matrix and the output to the readtable function

  4 Comments
Dyuman Joshi
Dyuman Joshi on 15 Mar 2024
Edited: Dyuman Joshi on 15 Mar 2024
Unless you are using R2016a or older versions, that will not be a problem.
Functions in a script are allowed with the restriction that they are defined at the end (bottom) of the script, which you have done.
You should check the comments above.
VBBV
VBBV on 16 Mar 2024
Edited: VBBV on 16 Mar 2024
@max muster, As mentioned by others in comments to your question, there are syntax problems related to for loop inside the function. Generally the syntax for loop is
for i = 1:anz
element(i)=matrix.ID(i)
end
element % function outputs

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!