matlab - 如何根据列中的值将非常大的矩阵拆分为子矩阵?

标签 matlab matrix octave

我有一个 5 x 600,000 的矩阵。我有一个对数据进行分组的想法,因此我想根据第 4 列中的值将该矩阵分组为子矩阵。

对于 0 到 500 之间的值,我想要一个矩阵,对于 501 到 1000 之间的值,我想要另一个矩阵,对于 1001 到 1500 之间的值,我想要另一个矩阵。

我该怎么做?

我目前没有任何可靠的 Material ,我在网上看到了一些例子,但它们似乎只具有 2 个变量(即一列中值为 1 或 0,并将 1 和 0 分组为 2 个子矩阵)。

最佳答案

我认为在Matlab中你的意思是你有一个nxm矩阵,其中n=600000,m=5,但如果没有,你可以相应地改变。

这是您想要做的吗?

n=600000; 
m=5;
thisCol =4;

values_range = {[0,500];[501,1000];[1001,1500]};  % cell array of vectors
myMatrix = zeros(n,m);
myMatrix(:,thisCol) = 1:600000;  % to prove it works.

theseSubMatrices = cell(length(values_range),1); % cell array of matrices
for j=1:length(values_range)
    thisLow= values_range{j}(1);
    thisHigh= values_range{j}(2);
    theseSubMatrices{j} = myMatrix(myMatrix(:,thisCol)>=thisLow & myMatrix(:,thisCol)<=thisHigh,:);
end

关于matlab - 如何根据列中的值将非常大的矩阵拆分为子矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75316184/

相关文章:

matlab - 如何使用数据矩阵来拟合matlab中的特定二维函数

matlab - MATLAB 的堆栈大小是多少?

arrays - 打乱一组不均匀重复的条目,使它们不重复

python - 如何在 numpy python 中创建相似度矩阵?

r - 对于R中的矩阵,为什么逐列运算不比逐行运算快(应该如此)

matlab - 如何在 Octave 中更新绘图数据和颜色图?

matlab - 如何找到多元非线性方程的数值近似?

c++ - 将 float * 或 int * 分配给 mxArray

matlab - 如何获得 Matlab 或 Octave 中所有已定义变量的列表?

c - 在函数中通过指向多维数组的指针分配指针