私はこれでやりたいことをするのに本当に苦労しているので、どんな助けでも大歓迎です。
配列を X 回ループして、ランダムな方法で画像の配列を表示しています。私がやりたいことは、現在ランダムな順序で表示されている各画像の名前と、各画像がループに表示されているときに属する配列を取得し、2 つを別々の変数に格納することです。
images.blue = imread('blue.bmp');
images.red = imread('red.bmp');
images.green = imread('green.bmp');
images.yellow = imread('yellow.bmp');
colours = {images.blue, images.red, images.green, images.yellow}
cata = {images.blue, images.red}
catb = {images.green, images.yellow}
たとえばimages.blue
、ループが配列を反復処理しているときに が画面に表示されている場合、その名前blue
を variable に保存しますCurrentFieldname
。
for count = 1;
names = (fieldnames(images));
while count <= 5
for n = randperm(length(colours));
d =(colours{n});
imshow(d);
pause(1)
CurrentFieldName = (names {n});
end
count = count+1;
end
break
end
上記のコードで何が起こるかというと、すべての画像が表示された後、条件が満たされるまでのすべての反復で、最後に表示された画像のフィールド名が に格納されCurrentFieldname
ます。
上記は私が望むものではありません。繰り返しループで画像が表示されるたびに、フィールドCurrentFieldname
に表示されている画像の名前を含めたいと思います。次に、ループの各反復中に、 と を比較して、どの配列が属しているかを確認したいCurrentFieldName
とcata
思いcatb
ますCurrentFieldName
。次に、これを別の変数 に記録しますCurrCat
。例えば
if CurrentFieldname == cata
CurrCat = a;
CurrentFieldName
これらの変数の両方を持ちCurrCat
、すべての反復の最後に関連情報を含めたいと思います。次に、ランダムに表示される次の画像に対応する情報で両方が上書きされます。
これがすべて理にかなっていることを願っています。
ありがとう