2

私は mksqlite を使用して、Matlab からいくつかの SQL を実行しています。

myPeople = mksqlite('SELECT * from People');

People テーブルに 3 つの行がある場合、myPeople は 3x1 構造体になり、3 つの 1x1 構造体が含まれ、それぞれに id、name などのフィールドがあります。私が欲しいのは、3 つの id 値を含む配列です。

Python では、次のようなリスト イテレータを使用します。

myIDs = person.id for person in myPeople

そのフィールドを持つ構造体の配列から特定のフィールドのすべての値を抽出するための同様の方法がMatlabにありますか?

これまでのところ、私が持っている最高のものは次のとおりです。

myIDs = []
for x = myPeople.'
    myIDs = [myIDs x.id]
end

しかし、反復ごとに配列のサイズを変更するので、おそらくかなり非効率ですよね?

4

1 に答える 1

3
myIDs = [myPeople.id]; %# nice shortcut syntax (horizontally concatenates)
myIDs = horzcat(myPeople.id); %# explicit way to horizontally concatenate
myIds = vertcat(myPeople.id); %# explicit way to vertically concatenate

構造とコンマ区切りリストの詳細については、このリンクを参照してください。

于 2012-08-30T02:40:43.813 に答える