Matlab内のCOMコレクションを反復処理する必要があります。 VBで私はFor Each item In Collection
を使うことができました。 Pythonではfor item in Collection
を使うことができました。しかし残念ながら、そのような構築物は、単純なループを使用した、MATLABで利用できない、このような何か:foreachまたは.Item()なしでCOMコレクションを繰り返します。
for index = 1 : Collection.Count
item = Collection.Item(index);
% now do something useful with the item
end
これは、一般的に適しています。しかし、私の特定のコレクションでは、.Item()
は数値インデックスではなく文字列(アイテムの名前)のみを受け入れます。したがって、上記のコードスニペットは失敗します。これは、ループを反復処理する前に、項目名がわからないためです。
VBではitem = Collection(index)
を実行できましたが、Matlabはこれを「アイテムがコレクション番号インデックス」として認識しているため、これは失敗します。つまり、Collection(2)はCollection内の2番目のアイテムではなく、2番目のコレクションにアクセスしようとします。これがMatlabで通常.Item(index)
を使用する理由ですが、私が上で述べたように、Item
が文字列を受け入れる特定のコレクションではこれが失敗します。
私の質問は次のとおりです:foreach
構成またはItem(index)
メソッドなしでCOMコレクションを繰り返し処理できますか?
あなたの答えをありがとう。これを実装する短いVBコードスニペットを投稿してもよろしいですか?そのVBスクリプトをMatlab –
に変換しようとします。私はC/C++/C#のみをプログラムします。しかし、私は[COMオブジェクト](https://de.mathworks.com/help/matlab/using-com-objects-in-matlab.html)を使用することに関するMATLABサイトのドキュメントを発見しました... – xMRi
残念ながら、IEnumVariantはMatlabでサポートされているので、これは終わりのように見えます –