matlab - 如何 reshape 和交错矩阵元素?

标签 matlab

有了时间序列的值,我想将其 reshape 为 nx4 矩阵 [X y],目的是将这些值用作机器学习算法的输入和输出值。

X(i) 是一个 1x3 输入向量,y 是输出标量值。

该算法将每隔 2 个序列值(3 个值)作为输入,以预测第 4 个值。

举个实际的例子,假设我们有一个序列

[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]

[X y] 矩阵应如下所示:

[1 3 5 7; 2 4 6 8; 9 11 13 15; 10 12 14 16]

为了获取每隔一行,我编写了以下代码:

vec1 = timeSeries(1:2:end);
XyVec1 = reshape(vec1,4,[])' 

类似地,它可以写成得到偶数:

vec2 = timeSeries(2:2:end);
XyVec2 = reshape(vec2,5,[])'

我不知道如何做的事情是交错矩阵 vec1 和 vec2 行以获得

[vec(1,:); vec2(1,:);vec1(2,:), vec2(2,:)...]

有谁知道如何交错两个(或更多)矩阵的行?

最佳答案

尝试

result = zeros(size(vec1,1)+size(vec2,1),size(vec1,2));
result(1:2:end,:) = vec1;
result(2:2:end,:) = vec2;

重用 matlab 索引工具在正确的行中插入元素

示例 Octave 模型:http://ideone.com/RVgmYA

关于matlab - 如何 reshape 和交错矩阵元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17766509/

相关文章:

Matlab - 高斯的 FFT - 等效

c - 动态内存分配和内存泄漏

matlab - 为什么神经网络输出不是二进制的?

Matlab: `mesh()` 网格数较少的图

matlab - 如何附加到正在运行的 Matlab 脚本

matlab - MATLAB 中 for 循环期间的条件语句

FOR 循环后的 Matlab 图例

matlab - 如何在 MATLAB 中使用交叉验证

多个图像上的 C++ OpenCV 线性代数?

matlab - MATLAB 中向量的绝对值