1

私は allWords というものを持っていますが、何らかの理由で中かっこでインデックスを作成する必要があります。

allWords{1}
ans =

  9x1 struct array containing the fields:

    img
    groundTruth

その中には手書き文字の 9 つの画像があり、それぞれを変数に割り当てると、次のようになります。

a=allWords{1}(1).img
b=allWords{1}(2).img
c=allWords{1}(3).img
d=allWords{1}(4).img
e=allWords{1}(5).img
f=allWords{1}(6).img
g=allWords{1}(7).img
h=allWords{1}(8).img
i=allWords{1}(9).img

こうすると、切り刻む前の手書きの文字が見えるようになります。

imshow([a b c d e f g h i])

それは私の以前のバージョンよりもずっといいです:

# the first word
n=1
l=length(allWords{n})
for i = 1:l, subplot(1,l,i); imshow(allWords{n}(i).img); end;

これにより、画像の間に不要なスペースが入ります。

しかし、それは非常に醜いです。どうすれば一般化して単純化できますか?

これは当然のことのように見えましたが、Matlab を台無しにするのには十分ではありません。

 imshow(allWords{1}.img)

愚かなヒープ。物事のタイプを見つけるためのヒント、または魔法のように他のタイプに変わるタイプとそうでないタイプ、または血まみれのインデックス作成がどのように機能するか、またはこの卑劣な混乱全体がこのようになった理由を論理的に説明するためのヒントを誰かが持っていますか? ?

4

1 に答える 1

1

試す:

img = cat(2, allWords{1}(:).img);
imshow(img)

いくつかの説明:

allWordsセル配列です。あなたが示した限りでは、少なくとも 1 つの要素が含まれています。

最初の要素allWords{1}は、サイズ 9x1 の構造体配列 (つまり、各要素が構造体である配列) です。各構造体には と の 2 つのフィールドがimgありgroundTruthます。

にアクセスするallWords{1}.imgと、コンマ区切りのリストが返され、基本的に に展開されx1,x2,...ます。したがって[allWords{1}.img]、サイズに互換性があると仮定すると、それらを としてマトリックスに結合できます。

最終結果:

imshow([allWords{1}.img])
于 2013-05-06T21:53:11.257 に答える