igl::cat
2016-06-23 19:45
405 查看
在dim维上,对A和B进行连接。如果dim为1,则将A,B按垂直方向堆叠,如果dim为2,则将A,B按水平方向堆叠。
template <typename Derived, class MatC>
IGL_INLINE void igl::cat(
const int dim,
const Eigen::MatrixBase<Derived> & A,
const Eigen::MatrixBase<Derived> & B,
MatC & C)
{
assert(dim == 1 || dim == 2);
// Special case if B or A is empty
if(A.size() == 0)
{
C = B;
return;
}
if(B.size() == 0)
{
C = A;
return;
}
if(dim == 1)
{
assert(A.cols() == B.cols());
C.resize(A.rows()+B.rows(),A.cols());
C << A,B;
}else if(dim == 2)
{
assert(A.rows() == B.rows());
C.resize(A.rows(),A.cols()+B.cols());
C << A,B;
}else
{
fprintf(stderr,"cat.h: Error: Unsupported dimension %d\n",dim);
}
}
igl::cat(dim,A,B,C);
template <typename Derived, class MatC>
IGL_INLINE void igl::cat(
const int dim,
const Eigen::MatrixBase<Derived> & A,
const Eigen::MatrixBase<Derived> & B,
MatC & C)
{
assert(dim == 1 || dim == 2);
// Special case if B or A is empty
if(A.size() == 0)
{
C = B;
return;
}
if(B.size() == 0)
{
C = A;
return;
}
if(dim == 1)
{
assert(A.cols() == B.cols());
C.resize(A.rows()+B.rows(),A.cols());
C << A,B;
}else if(dim == 2)
{
assert(A.rows() == B.rows());
C.resize(A.rows(),A.cols()+B.cols());
C << A,B;
}else
{
fprintf(stderr,"cat.h: Error: Unsupported dimension %d\n",dim);
}
}
igl::cat(dim,A,B,C);
相关文章推荐
- git日常命令
- 广度优先搜索,分支限界- ZOJ - 1136 Multiple
- 理解 Keystone 核心概念 - 每天5分钟玩转 OpenStack(18)
- 个人总结
- java提高篇(八)----详解内部类
- HDU 1014 Uniform Generator
- **科技面试问的问题
- scrapy启动过程源码分析
- ubuntu1404安装xen
- 云计算的三种服务模式:IaaS,PaaS和SaaS
- mysql主从复制配置
- 7.4.2 Prime Ring Problem UVA 524
- HTML语言marquee实现滚动效果
- C++设计模式浅识桥接模式
- 服务器中 配置phpstudy一键安装包
- 6.4.1 用DFS求连通块 UVA 572 Oil Deposits DFS水题
- PAT(乙级) 1006. 换个格式输出整数
- ImageLoader blur
- 关于前端我的第一篇博客
- Android四大组件之BroadcastReceiver