matlab - 将列矩阵转换为具有重复数据的多行
问题描述
在 Matlab 中,给定矩阵 'a' 为:
a = [1 2 3 4 5 6 7 8 9]';
但是几百万行深,将其转换为“b”中显示的格式的最佳方法是什么?
b = [1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
4 5 6 7 8 9]
其中'b'中的每一行包含来自'a'的N个连续值?
我可以编写一个函数,但想知道是否有更快、更内置的方法?
解决方案
另一种选择是内置的汉克尔矩阵,例如在您的情况下:
hankel(1:4,4:9)
或者在一般情况下对于向量a
和块大小N
hankel(a(1:N),a(N:numel(a)))
我不知道 hankel 的实现是比@Luis Mendo 解决方案更好还是更差,所以测试一下哪个解决方案更适合你......
推荐阅读
- python - C 支持 scipy 吗?或者我们如何在 pycuda 中使用 scipy
- django - 在 Django Admin 中无法删除 — 对象将 ITSELF 称为受保护对象
- javascript - 组件需要很长时间才能随机呈现列表
- gremlin - Tinkerpop Gremlin - 在 match() 中使用 math() 的结果不一致
- ios - 无法使用 SwiftUI 在列表中显示整个字符串
- azure-logic-apps - 当逻辑应用组件标题更改时,表达式/JavaScript 失败
- arrays - 在 Python 中从 2 个单维数组创建 2d 数组
- powershell - 将 Octopus 内部版本号添加到项目级别变量
- json - Spark,为 JSON 数组中的每个 JSON 对象推断一个单独的模式
- wpf - WebView2 不显示网页