c++ - 将数组分配给更高维数组
问题描述
这与高维 Xtensor 数组中的分配非常相似/相关。
我或多或少有同样的问题,想知道是否有更好的方法可以做?最后,标记为正确的答案最终仍然需要按元素分配,并且并没有真正提供一次将整个数组分配给给定轴的选项。
例如,在 numpy-python 中,我可以做一些类似的事情
x = np.zeros((2,2))
x[0] = np.ones(2)
print(x)
运行时会返回
[[ 1. 1.]
[ 0. 0.]]
现在在 xtensor 中,我想做一些类似的事情,即沿特定轴分配整个数组。我尝试的是
xt::xarray<double> x = xt::zeros<double>({2,2});
x(0) = xt::ones<double>({2});
但这不起作用 - 本质上这是与 OP 相同的问题。现在建议的解决方案是
xt::xarray<double> x = xt::zeros<double>({2,2});
for(int =0; i < 2;i++){
x(0,i) = 1;
}
这给出了正确的结果 - 但是,这仍然需要我在孔轴上循环,而不是直接将数组分配给整个事物。将此与
xt::xarray<double> x;
x = xt::zeros<double>({2})
如果我有一个一维数组,这允许我一次分配整个数组。在高维结构中沿给定轴分配数组是否有任何等价物?
解决方案
您可以使用视图来实现您想要的:
xt::xarray<double> x = xt::zeros<double>({2,2});
xt::view(x, 0) = xt::ones<double>({2});
有关详细信息,请参阅视图的文档
推荐阅读
- java - 如何将字符串数组列表存储到 Firebase 中?
- android - 如何在每次运行应用程序时显示一次免责声明
- python - 如果请求包的特定附加功能,请安装依赖项的附加功能
- javascript - 如何将数据表参数传递给我的水晶报表控制器,以便在 ASP.Net MVC 中使用表的参数保存文件名?
- c# - 在 C# 中比较两个数据表的列名
- elasticsearch - centos 7无法启动elasticsearch服务
- powershell - Why is PowerShell [TYPE]::new() lower case
- java - 注入通用 ViewModel Dagger Hilt Android
- javascript - 如何使用 url-parse 包在 react js 中解析 url 中的查询?
- php - 如何使用 array_filter() 按类别对帖子进行分组?