罗兰在MATLAB的艺术

把想法变成MATLAB

Vectorizing访问数组结构

虽然我写了关于这个话题之前,我继续把问题处理数组的结构。所以我想我将专注于今天独自一人。

内容

最近的样品问题

最近有一个问题新闻组如何访问在一个结构数组元素进行向量化。也有一个电子邮件从一个客户关于这个主题。这是一个客户的描述他的问题:

总而言之,我想做什么(在尽可能少的代码行)是:
状态=一个结构数组,N项每个x和y(例如)组件。
在我的例子中“状态”是相当复杂的,因此不需要使用一个简单的2 x N矩阵。
我= 2:N (i) = markovmodel状态(状态(张));% 1。访问单个结构结束
情节(state.x) % 2。访问所有条目的一个元素的向量。

这个问题的答案

让我们先创建一个数组的结构。

(1)。x = 3;(2)。x = 4;(3)。x = 5;(1)。y = 42;(2)。y = 99;(3)。y = 0;州
州= 1 x3结构体数组字段:x y

让我们看看在states.x

states.x
ans = 3 = 4岁= 5

使用结构体的数组,您可以收集x值使用

allxvals = [states.x]
allxvals = 3 4 5

这是因为states.x产生一个逗号分隔的列表。我是怎么知道这些的?因为,如果我离开了分号,我看到一群输出ans =;换句话说,我得到多个输出值。我怎么收集多个值为一个数组?我可以使用方括号或大括号。

使用方括号,[],只是地方列表之间的括号,创建一个数组的一种类型,在本例中,双打。你可以做同样的与结构体数组字段更适合细胞数组使用花括号,{}在方括号。

用户的解决方案

如果不使用

情节(state.x),用户用所取代
情节([state.x])

informationg得到正确绘制。

评论?

我的问题是为什么这个问题越来越问道。是不寻常的,人们甚至不知道如何寻找信息在线?我们能做些什么在MathWorks使这更看得见吗?请将你的想法在这里




使用MATLAB®7.4发表

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。