在MatLab中,如何根据列A是否大于0从列B中选择特定数量的行?

mi7gmzs6  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(249)

我有一个由随机数组成的数据矩阵,它是从0到9(即两列十行)。如果A列第3行大于0,我想从第3行开始创建一个新列,使B列第3行后面的数字为5。
有没有一种简单的方法可以在MatLab的命令窗口中做到这一点?

3ks5zfa0

3ks5zfa01#

假设我对这个问题的理解是正确的:

test = rand(10,2);
if test(3,1) > 0; new_column = test(3:7,2); end
% Setup
x = rand(10,1);
y = rand(10,1);
xx = logical(x);

z = 5;

% One-liner
w = zeros(sum((xx==1)),z); step = 1; for ii = 1:length(xx), if xx(ii) == 1, w(step,:) = y(ii:(ii+z-1)); step = step+1; end,end,

但是,如果xx==1的索引值大于(z+1),则不会得到z个观测值,这将导致错误。你需要进一步明确你想要做什么。
为什么必须在命令行中执行此操作,有什么特殊的原因吗?

相关问题