gpt4 book ai didi

Matlab:访问所有堆叠结构中的相同元素

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:48 24 4
gpt4 key购买 nike

我有一个带有数据的堆叠结构,看起来像这样:

a(1) = struct('X',rand(10,1),'Y',rand(10,1),'Time',(1:1:10)')
a(2) = struct('X',rand(10,1),'Y',rand(10,1),'Time',(1:1:10)')

(堆叠结构的数量和每个参数的长度不是常数)

现在我想访问时间戳为 5 的所有 X 数据。我知道我可以用一个循环来做到这一点:

data = zeros(length(a),1)
for k=1:1:length(a)
data(k) = a(k).X(5)
end

但是我想知道是否有一种方法可以不通过循环访问数据?

我尝试了 b = [ a(:).X(5) ] 但这不起作用(b = [ a(:).X ] 确实).我已经必须在一个环绕循环中执行此操作,所以我想避免不必要的计算...

在同一主题中:是否可以获取具有相同时间戳的一个堆栈的所有数据?像这样:

data = a(1)(a(1).Time==5)
>> data
data =
<X value> <Y value> 5

感谢您的帮助!

最佳答案

这正是getfield是为了!

data = getfield( a, {1:numel(a)}, 'X', {5} );

关于Matlab:访问所有堆叠结构中的相同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16691741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com