How can i put the conditional statement ( If-Then-else) on the specific elements (Rows/columns) of a matrix in Matlab Using Neural Network Tool?

3 views (last 30 days)
How can i put the conditional statement ( If-Then-else) on the specific elements (Rows/columns) of a matrix in Matlab Using Neural Network Tool? Basically I am working on classification using neural Network tool in matlab. My out put only shows in matrix like : output =
1.2723
0.0123
0.0022
But I want the output in statement like "Class1" Or "Class2"
i.e. If the matrix is like this then output is this....
For example: I have two different matrices like: output1 =
1.2723
0.0123
0.0022
output2 =
0.2460
-0.0521
1.1062
%I want to set the ranges of the elements on behalf of some conditions like:
If The first element of the first row of matrix Output1 is >= 0.6 and <=1.5
AND
If The 2nd element of the 2nd row of matrix Output1 is >= -0.49 and <=0.49
AND
If The 3rd element of the 3rd row of matrix Output1 is >= -0.49 and <=0.49
THEN
Display = Class1
%for Matrix Output2:
I want to set the ranges of the elements on behalf of some conditions like:
If The 1st element of the 1st row of matrix Output2 is >= -0.49 and <=0.49
AND
If The 2nd element of the 2nd row of matrix Output2 is >= -0.49 and <=0.49
AND
If The 3rd element of the 3rd row of matrix Output2 is >= 0.6 and <=1.5
THEN
Display = Class2
Please anyone can send me the code/explanation. how can I set these condition using If-Then-else or any other statement?
Regards:
Safdar Hayat
+923335260136
Skype:
jugnu2008.safdar
Iqra University Islamabad, Pakistan

Accepted Answer

Greg Heath
Greg Heath on 17 Oct 2015
If you have 4 classes, your target matrix columns should be columns of eye(4). The relationship between class indices 1:4 and the target matrix is
trueclassindices = vec2ind(target)
target = ind2vec(trueclassindices)
Example:
>> trueclassindices = [ 1 1 2 4 3 4 ]
>> target = full( ind2vec(trueclassindices))
target = 1 1 0 0 0 0
0 0 1 0 0 0
0 0 0 0 1 0
0 0 0 1 0 1
If
output =[ 0.5142 0.49114 0.18198 0 0.25288 0.13838
0.03653 0.1455 0.4168 0.14434 0.18459 0.066341
0.31642 0.22294 0.26658 0.38809 0.54807 0.35987
0.13285 0.14041 0.13464 0.46757 0.014469 0.43541]
then
assignedclasses = 1 1 2 4 3 4
Hope this helps.
Thank you for formally accepting my answer
PS. The unit sum output is a consistent estimate of the input-conditional posterior class probabilities (See any pattern-recognition text).
Greg
  3 Comments
Greg Heath
Greg Heath on 18 Oct 2015
I understand your question.
My answer is to change your target to have {0,1} unit vectors, modify your code and train a new classifier.
Hope this helps.
Greg
Safdar Hayat Khaksar
Safdar Hayat Khaksar on 30 Oct 2015
Hi: Dear Greg Health !
Thanks for your moral support but your answer did not help me.
I have solved my problem by self hit and try.... :-p
I have used just targets matrix indices and then applied the loop simply as follow:
for output=sim(net, test)
X=output;
if ((X(1,1)>= -0.499) && (X(1,1)<= 0.5))&& ((X(2,1)>= -0.499) && (X(2,1)<= 0.5)) && ((X(3,1)>= -0.499) && (X(3,1)<= 0.5))
display('Class 1');
elseif ((X(1,1)>= 0.5) && (X(1,1)<= 1.5)) && ((X(2,1)>= -0.499) && (X(2,1)<= 0.5)) && ((X(3,1)>= -0.499) && (X(3,1)<= 0.5))
display('Class 2');
elseif ((X(1,1)>= -0.499) && (X(1,1)<= 0.5)) && ((X(2,1)>= -0.499) && (X(2,1)<= 0.5)) && ((X(3,1)>= 0.5) && (X(3,1)<= 1.5))
display('Class 3');
else
display('no math found');
end
end
% X(1,1) represent first element of first row and first column of matrix X.
%X(2,1) represent first element of 2nd row and first column of matrix X.
%X(3,1) represent first element of 3rd row and first column of matrix X.
  • _Yahoooo... !!!
Thanks alot_*

Sign in to comment.

More Answers (0)

Categories

Find more on Sequence and Numeric Feature Data Workflows 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!