how can I apply for loop to process a method 10 times and save different results for each time process runs for different variables.

How can I apply for loop to simulate a method 10 times and save different results for each time process runs for different variables. Suppose I have process command
ma1 = knnclassify(testsample1,trainingset,group),
testsample1 = mobile_Motorola
(total 10 types of mobile) training set and group will be same for each simulation. This command should run after knn command.
Ka1 = sum(ma1==samplevalue)/length(ma1);
With each simulation sample value should also add by 1 sample value=1 to 10.

 Akzeptierte Antwort

Assume the types are stored in matrix_types:
matrix_types
matrix_types(1)='type 1'
matrix_types(2)='type 2'
and so on and Ka1 should also be an array:
Ka1 = zeros(1,10);
for i = 1:10
ma1 = knnclassify(matrix_types(i),trainingset,group);
Ka1(i) = sum(ma1==samplevalue)/length(ma1);
end
So after the 10 iterations of the loop you find your results in Ka1.

Weitere Antworten (1)

Is it possible to store your 10 types in an array/cell-array? Then you could use the index to call the right type in the for-loop.

5 Kommentare

Yes all 10 types are stored in a matrix. Please explain with example...
I don't understand how to use matrix_types in my case please I have attached files. mobile variables.mat and Training mobile.m. Training mobile has two sessions of each data and 1st session is training data, i.e. (_a1) and 2nd session data is testing data that is matrix_types here i.e. (_a2). Training data remains same but in test data there are 10 types of mobiles. please make changes in the code if u can have some time. Please.
I am not sure if I understand your code ...
You don't need to use my matrix_types, you already have your vector Testset. So instead of writing
testsample1=jh_mobile_Motorola_Milestone_a2;
write
testsample1=Testset(10);
To use a loop you only have to sort the entries in Testset in the right order.
for i =1:10
testsample1=Testset(i);
...
end
To store your results so you can view them afterwards you can use arrays or matrices.
Example with matrix ma:
ma(1,1)=knnclassify(testsample1,trainingset1,group);
ma(1,2)=knnclassify(testsample1,trainingset1,group,5);
ma(1,3)=knnclassify(testsample1,trainingset1,group,10);
ma(1,4)=knnclassify(testsample1,trainingset1,group,15);
ma(1,5)=knnclassify(testsample1,trainingset1,group,20);
ma(1,6)=knnclassify(testsample1,trainingset1,group,25);
ma(1,7)=knnclassify(testsample1,trainingset1,group,50);
And in a loop you replace the 1 with the counting variable. So each row contains a different test.
I have done the same but there is some error like this. "??? In an assignment A(I) = B, the number of elements in B and I must be the same." I am attaching file, please have a look and tell me. First I am just using 'ma' and 'Ka' results and not including 'mb', 'mc', 'Kb', 'Kc' experiments. Regards.
Try to determine the sizes of ma and Ka by using the zeros-matrix.
Your ma-matrix is unnecessarily big ... Compare what you did to that what I wrote.
You also have to comment the unused code out. Else this could also be a reason for errors.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 6 Jul. 2014

Bearbeitet:

am 9 Jul. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by