finding index to a vector in structure

Consider the following example:
f = struct
f(1).x = 5;
f(2).x = 1:10;
f(3).x = 1;
f(4).x = 2;
I wish to find an automated way of finding which element of the field x is a vector. In the example above, the answer is element 2. Thank you!

 採用された回答

the cyclist
the cyclist 2015 年 10 月 1 日

0 投票

I could not figure out a vectorize way to do this, but perhaps this loop is good enough:
n = size(f,2);
isVectorF = false(1,n);
for nv = 1:n,
isVectorF(nv) = not(isscalar(f(nv).x));
end
isVectorF is a logical with 0 = scalar and 1 = vector.

1 件のコメント

Jos (10584)
Jos (10584) 2015 年 10 月 1 日
isVectorF = arrayfun(@(k) isvector(f(k).x) && numel(f(k).x)>1 ,1:numel(f))

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeStructures についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by