How can I get the min of cell arrays

3 ビュー (過去 30 日間)
Zaid Alyasseri
Zaid Alyasseri 2016 年 12 月 17 日
コメント済み: Zaid Alyasseri 2016 年 12 月 17 日
Hi everyone, I faced a problem with my Matlab code. Actually, I have a cell array which is:
BestGene={}
BestFitness={}
Bestresult={}
for i=1:5
Bestresult{i}={BestFitness{i},BestGene{i}}
end
My question is how can I get the BestGene{:} parameters of the min(BestFitness{:}).
for example:
BesrFitness{1}=0.022;
BestGene{1}={'dd','tt',3,5}
Bestresult{1}={0.022,{'dd','tt',3,5}}
BestFitness{2}=1.223;
BestGene{2}={'ccc','sss',13,25}
Bestresult{2}={1.223,{'ccc','sss',13,25}}
BestFitness{3}=0.003;
BestGene{3}={'d1d','t1t',31,51}
Bestresult{3}={0.003,{'d1d','t1t',31,51}}
the result of Result=min(BestFitness{:}) The answer should be {'d1d','t1t',31,51} Looking for your help

採用された回答

Image Analyst
Image Analyst 2016 年 12 月 17 日
Try this:
BestGene={}
BestFitness={}
Bestresult={}
BestFitness{1}=0.022;
BestGene{1}={'dd','tt',3,5}
Bestresult{1}={0.022,{'dd','tt',3,5}}
BestFitness{2}=1.223;
BestGene{2}={'ccc','sss',13,25}
Bestresult{2}={1.223,{'ccc','sss',13,25}}
BestFitness{3}=0.003;
BestGene{3}={'d1d','t1t',31,51}
Bestresult{3}={0.003,{'d1d','t1t',31,51}}
celldisp(Bestresult)
% Use brackets or cat(1,BestFitness{:}) to concatenate all values into single vector.
[minValue, indexOfMin] = min([BestFitness{:}])
% Extract second cell of Bestresult's indexOfMin location.
% First need to extract the cell
finalResult = Bestresult(indexOfMin)
% This is a 1x2 cell. Need to get the second cell of it.
finalResult = finalResult{1}(1,2)
% Print to command window:
celldisp(finalResult)
  1 件のコメント
Zaid Alyasseri
Zaid Alyasseri 2016 年 12 月 17 日
Thanks a lot Image Analyst

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by