Extracting data from confusion matrix fig
13 views (last 30 days)
Show older comments
Hi, How can i extract the data from a confusion matrix fig file?
3 Comments
Bala Tripura Bodapati
on 26 May 2022
Hi Umair,
Could you specify whether the figure contains confusion matrix or confusion chart? Also could you specify what type of data do you want to extract specifically? Attaching an example would help me answer your query with more specificity.
Answers (2)
Chunru
on 26 May 2022
Edited: Chunru
on 26 May 2022
f = openfig('SqueezeNet-CM', 'visible');
h = findobj(f.Children(2).Children, 'Type', 'Text');
data = zeros(length(h), 1);
for i=1:length(h)
data(i) = sscanf(h(i).String, '%f');
end
m = 5;
data = reshape(data, [2*m m]);
data_number = data(4:2:end, 2:end)
data_number = data_number(end:-1:1, end:-1:1)
0 Comments
Bala Tripura Bodapati
on 26 May 2022
Hi Umair,
It is my understanding that you would like to extract the numeric values from confusion matrix plotted on a figure.
From the confusion matrix plotted using 'plotconfusion' function, there is no method to extract the numeric values.
Alternatively, you can plot the confusion matrix using the 'confusionchart' function on a figure and then extract the numeric values.
The following code illustrates the same:
load fisheriris
X = meas;
Y = species;
Mdl = fitcknn(X,Y,'NumNeighbors',5,'Standardize',1);
predictedY = resubPredict(Mdl);
fig=figure;
confusionchart(Y,predictedY);
'cm' is a confusion chart object. The 'NormalizedValues' property of this object outputs the numeric matrix:
matrix=cm.NormalizedValues
Also, refer the confusionchart documentation for more information on confusion chart and graphics hierarchy documentation for more information on accessing figure object and it's children.
0 Comments
See Also
Categories
Find more on Annotations 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!