【发布时间】:2017-08-25 16:30:38
【问题描述】:
这是 matlab 中的non-scalar structure:
clearvars s
s=struct;
for id=1:3
s(id).wa='nko';
s(id).test='5';
s(id).ad(1,1).treasurehunt='asdf'
s(id).ad(1,2).treasurehunt='as df'
s(id).ad(1,3).treasurehunt='foobar'
s(id).ad(2,1).treasurehunt='trea'
s(id).ad(2,2).treasurehunt='foo bar'
s(id).ad(2,3).treasurehunt='treasure'
s(id).ad(id,4).a=magic(5);
end
有没有一种简单的方法来测试结构s 是否包含字符串'treasure',而不必遍历每个字段(例如,通过变量的实际内容执行'grep')?
目的是“快速而肮脏地”查看结构中是否存在字符串(无论在哪里)。换句话说(对于 Linux 用户):我想使用 'grep ' 在 matlab 变量上。
我试过arrayfun(@(x) any(strcmp(x, 'treasure')), s)没有成功,输出:
ans =
1×3 logical array
0 0 0
【问题讨论】:
标签: matlab matlab-struct