Too many input arguments.

I don't have idea why is wrong. My program showed me this error
Probka: kaszel
WYKRYTO: ??? Error using ==> max
Too many input arguments.
Error in ==> rozpoznawanie_dzwiekow at 200
if [smiech]==max(kaszel, smiech, krzyk, chrzakanie);

 Accepted Answer

max([kaszel, smiech, krzyk, chrzakanie])
or
max(max(max(kaszel, smiech), krzyk), chrzakanie)

8 Comments

The second code is fine, but now program recognize only smiech. Something has to be wrong.
if [smiech]==max(max(max(kaszel, smiech), krzyk), chrzakanie)
fprintf ('smiech')
elseif[kaszel]==max(max(max(kaszel, smiech), krzyk), chrzakanie)
fprintf ('kaszel')
elseif [krzyk]==max(max(max(kaszel, smiech), krzyk), chrzakanie)
fprintf ('krzyk')
elseif[chrzakanie]==max(max(max(kaszel, smiech), krzyk), chrzakanie)
fprintf ('chrzakanie')
end
Are you still using matrices? Your entire approach is wrong if you are using matrices.
Try this:
T = max(max(max(kaszel, smiech), krzyk), chrzakanie);
if isequal(smiech, T)
fprintf ('smiech')
elseif isequal(kaszel, T)
fprintf ('kaszel')
elseif isequal(krzyk, T)
fprintf ('krzyk')
elseif isequal(chrzakanie, T)
fprintf ('chrzakanie')
else
fprintf('Using max() is not working to decide which case you are dealing with')
end
Monika
Monika on 24 Jan 2014
Edited: Monika on 24 Jan 2014
Yes, I am still using matrices. Now program showed:
WYKRYTO: Using max() is not working to decide which case you are dealing with
Walter Roberson
Walter Roberson on 24 Jan 2014
Edited: Walter Roberson on 24 Jan 2014
Suppose you have four matrices, A = [1 0 0 0], B = [0 1 0 0], C = [0 0 1 0], D = [0 0 0 1]. Then max() applied over the 4 is going to be [1 1 1 1], but clearly none of the individual matrices is equal to the max().
Whatever-it-is you are trying to do, your method is wrong.
The four matrices you have, you indicate as signal names. Is it the case that each of the four is a sample of what a particular sound is like? Or is each of the four a feature vector from analyzing that particular sound? And are you trying to figure out which of the four an input is most like? If so then you should be comparing the input to each of the four in turn, not comparing the four to each other. If the four matrices represent feature vectors, then what you should do is find out which of the four feature vectors is "most like" the input; a typical way to do that is to calculate the Euclidean distance between the input sound's feature vector and each of the four, and accept the one which has the smallest Euclidean distance.
Ok. I know that it is wrong :)
Now I have this code. Program recognized signals. Only results are so bad.
zmienne=[kaszel(1) smiech(1) krzyk(1) chrzakanie(1)]
wart_max=max(zmienne)
if (wart_max==smiech(1))
fprintf('smiech')
elseif (wart_max==kaszel(1))
fprintf('kaszel')
elseif (wart_max==krzyk(1))
fprintf('krzyk')
elseif (wart_max==chrzakanie(1))
fprintf('chrzakanie')
end
No it isn't case. I have sample of cough, laugh, grunt and shout.
I used GMM to learn my signals. I've one signals on my input. And I would like to see what type is this signals. What is this the Euclidean distance?
Euclidean distance:
sqrt(sum((A(:) - B(:)).^2))
This is just the expansion of the Phythagorean Theorem that "the square of the length of the hypotenuse is equal to the sum of the squares of the other two sides"
Note, however, that Euclidean distance is what would be suitable for feature vectors, and is not necessarily suitable for samples. For comparing samples, you can do feature extraction, or you can use techniques such as registration and cross-correlation and I don't know what else (I have not worked with comparing speech)
Euclidean distance:
sqrt(sum((A(:) - B(:)).^2))
so my A is kaszel, B is smiech.
And I should one time more and now A is chrzakanie , B is krzyk.
No I think that I don't understand very well Euclidean distance:

Sign in to comment.

More Answers (0)

Asked:

on 23 Jan 2014

Commented:

on 24 Jan 2014

Community Treasure Hunt

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

Start Hunting!