我有一个 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/