首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子集Armadillo场

子集Armadillo场
EN

Stack Overflow用户
提问于 2015-03-22 13:36:01
回答 1查看 1.1K关注 0票数 0

如果我正确理解,Armadillo中的字段就像任意对象的列表。例如,一组不同大小的矩阵,或矩阵和向量。在文档中,我看到了cube类型,它可以与slices一起使用,因此您可以使用它们进行子集。然而,似乎没有特定的方法来对字段进行子集。

我的代码的一个简化版本是:

代码语言:javascript
复制
arma::mat A = eye(2,2);
arma::mat B = eye(3,3)*3;
arma::mat C = eye(4,4)*4;
arma::field<arma::mat> F(3,1);
F(0,0) = A;
F(1,0) = B;
F(2,1) = C;

// to get matrices B and C
F.slices(1,2);

但要犯错误

Error: field::slices(): indicies out of bounds or incorrectly used

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-22 15:25:53

首先,在您介绍的代码中有一个小错误:

代码语言:javascript
复制
F(2,1) = C;

我想应该是:

代码语言:javascript
复制
F(2,0) = C;

其次,函数片()只对3D字段有效。但是,您的字段F只是一个2D字段,因为您只在构造函数中指定行和列。要访问矩阵B和C,可以使用:

代码语言:javascript
复制
arma::field<arma::mat> G=F.subfield(1,0,2,0);

或者:

代码语言:javascript
复制
arma::field<arma::mat> G=F.rows(1,2);

关于此页子字段视图的更多信息。

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

https://stackoverflow.com/questions/29195019

复制
相关文章

相似问题

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