首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Matlab中访问作为矩阵第一列的索引

在Matlab中访问作为矩阵第一列的索引
EN

Stack Overflow用户
提问于 2014-03-05 01:11:32
回答 1查看 72关注 0票数 0

我有一个计算化学程序(Gaussian09)输出的数据,其中包含一组力常数数据。数据以索引排列为前2-4列(计算二次、三次和四次FC)。作为一个例子,立方的FC看起来像这样,MatLab已经成功地读取了它们,所以我有了正确的矩阵:

代码语言:javascript
复制
cube=[
1  1  1  5  5  5
1  1  2  6  6  6
.
.
4  1  1  8  8  8
4  2  1  9  9  9
4  3  1  7  7  7 ]

我需要一种方法来访问后3列时,在前3列的索引。一些类似的东西

代码语言:javascript
复制
>>index=find([cube(:,1)==4 && cube(:,2)==3 && cube(:,3)==1]);

这将给出索引为4 3 1的数据的行号,并允许我读出循环中需要的值7 7 7,以计算非谐波频率。

有没有办法不用一堆循环就能做到这一点?

提前谢谢你,

EN

回答 1

Stack Overflow用户

发布于 2014-03-05 03:40:31

您已经找到了一种解决此问题的方法,即在表达式中使用& (允许进行非标量比较)。

另一种方法是使用ismember

index = find(ismember(cube(:,1:3),[4 3 1]));

请注意,在许多情况下,您可能甚至不需要调用find:由比较或ismember返回的二进制向量可以直接用于索引到另一个数组。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22178469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档