Parentheses error with a function call

What is wrong with this function call? It's so basic but don't know what I am missing.
The error is "Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters."
load('mnist.mat', 'testX');
% save('testX'); commented it based on the reply I got for this question
x=testX; % testX is a 529*784 matrix
k=5; numIter=6;
[mu, cll, ill] = gmm(x, k,numIter)
% the function definition starts like this in another file
% function [mu,CLL,ILL] = gmm(x,K,numIter)

4 Commenti

That code looks okay.
save('testX'); % testX is a 529*784 matrix
Note that that save() call would save the entire current workspace to file testX.mat not just the testX matrix.
Jaya
Jaya il 10 Mag 2021
Modificato: Jaya il 10 Mag 2021
Ok, I didn't know that. Now, I have kept only the following in its place but still it's the same error. I just unable to figure out where is the problem then.
And this happens irrespective of what arguments I put in the function call. Like just two of them or one of them and changing the function def accordingly.
load('mnist.mat', 'testX');
x=testX; % testX is a 529*784 matrix
k=5; numIter=6;
[mu, cll, ill] = gmm(x, k,numIter)
% the function definition starts like this in another file
% function [mu,CLL,ILL] = gmm(x,K,numIter)
Jaya
Jaya il 10 Mag 2021
Modificato: Jaya il 10 Mag 2021
Oh, it's working now!!!!
Turns out this posted code excerpt was perfectly okay. Inside the function definition, there was one ) missing for one line.
Thanks for the save() suggestion.
I do not see any problem with the code extract that you posted.
Perhaps the error is inside gmm function .

Accedi per commentare.

 Risposta accettata

%if true
x = load('mnist.mat', 'testX');
k=5;
numIter=6;
function [mu, cll, ill] = gmm(x, k,numIter)
Assign x directly when loading

4 Commenti

Thanks & I did this later. But the actual problem was that, as Walter suggested, a parentheses was missing on a line inside the function definition. But in any case, your answer is more neat and avoids future errors too
No, when you assign the result of load of a mat file you always get a struct with one field for each variable name loaded. You would need to reference x.testX to get to the data.
Jaya
Jaya il 11 Mag 2021
Modificato: Jaya il 11 Mag 2021
Thanks again for the reply. What I meant in my previous answer was I did in the way you proposed in the beginning. I didn't know that VBBV's answer and your answer would give different result into x and that's why i commented like that thinking they give same x.
I didn't see any button for accepting your answer..
Assigning the output of load() is a good idea... it just isn't the reason you had the problem in this situation, and the change was not coded for correctly in VBBV's answer.

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 11 Mag 2021
[copying down from correct comment]
I do not see any problem with the code extract that you posted.
Perhaps the error is inside gmm function .

Richiesto:

il 10 Mag 2021

Commentato:

il 11 Mag 2021

Community Treasure Hunt

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

Start Hunting!

Translated by