How to print value from Structure in MATLAB
64 次查看(过去 30 天)
显示 更早的评论
Hello Everyone, I hope you are doing well, I have the following Structure which include Prediction and ValueStructure
I want to print the Value from ValueStructure
for Class 1 i have write the following Code.
pred2 = sprintf('Class1 Levels: %d\n Maximum Value of Class1:%d\n Minimum Value of Class1:%d\n',CombineOutput(1).PRFStructure.StagLevels,CombineOutput(1).PRFStructure.StaggMinimumValue,CombineOutput(1).PRFStructure.StaggMaximumValue);
But i am unable to print StagPRFValue. How can i print it.
For Class 2
pred1 = sprintf('Class 2 Levels: %d\n Maximum Value of Class 2:%d\n Minimum Value of Class 2:%d\n ',CombineOutput(2).PRFStructure.Levels,CombineOutput(2).PRFStructure.DSmaximum,CombineOutput(2).PRFStructure.DSminimum);
I want to print unique values of DSPRFValue and DS Length
How can i do that in Matlab
0 个评论
回答(2 个)
Jonas
2022-7-4
编辑:Jonas
2022-7-4
you can access the 4 doubles in the cell StagPRFValue by e.g.
CombineOutput(1).ValueStructure.StagPRFValue{1}
the other two values can be accessed with
CombineOutput(2).ValueStructure.DSPRFValue
and
CombineOutput(2).ValueStructure.DSlength
if you want the unique values of those vectors, use unique(CombineOutput(2).ValueStructure.DSlength)
6 个评论
Jonas
2022-7-5
why does it not work? i edited to previous comment to show, that the syntax is right.
Do you get an error, or did you want another output? please be more specific
Image Analyst
2022-7-19
Assuming your sprintf worked to put the right string into pred, you can send pred to the text label component on the GUI like this
app.PredEditField.Value = pred; % Send pred string to the label on the GUI.
If you have any more questions, then attach your .mlapp code after you read this:
10 个评论
Image Analyst
2022-7-20
编辑:Image Analyst
2022-7-20
I think you could have figured it out yourself knowing how sprintf() works, but anyway, here is what I got to handle a variable number of elements in the StagPRFValues vector.
s = load('StephenJohn.mat');
CombineOutput = s.CombineOutput;
for z = 1: numel(CombineOutput)
thisClass = char(CombineOutput(z).Prediction);
predictedPRI = sprintf('Cluster %1.0f Predicted PRI: "%s".\n',z, thisClass);
fprintf('For z = %d, %s\n', z, predictedPRI)
app.TextArea.Value = predictedPRI;
% Get the table from the structure. "ValueStructure" is a field of hte structure and it is a table-type variable.
tbl = CombineOutput(z).ValueStructure;
% Prepare the string.
if contains(thisClass, '1')
predictedPRI = sprintf('Class1 Levels: %d\n\n StagePRFValues: [', tbl.StagLevels);
StagPRFValues = tbl.StagPRFValue{1};
numValues = numel(StagPRFValues);
for k = 1 : numValues
predictedPRI = sprintf('%s%d ', predictedPRI, StagPRFValues(k));
end
predictedPRI = sprintf('%s]\n Maximum Value of Class1:%d\n Minimum Value of Class1:%d\n', ...
predictedPRI, ...
tbl.StaggMinimumValue, ...
tbl.StaggMaximumValue)
app.TextArea_3.Value = predictedPRI;
elseif contains(thisClass, '2')
predictedPRI = sprintf('Class 2 Levels: %d\n Maximum Value of Class 2:%d\n Minimum Value of Class 2:%d\n ', ...
tbl.Levels, ...
tbl.DSmaximum, ...
tbl.DSminimum)
app.TextArea_2.Value = predictedPRI;
end
end
I think you should be able to add any additional variables you want to print. If not, see sprintf. If you really can't figure it out based on how I wrote out the other variables, then write back. Otherwise, can you click "Accept this answer."?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!