0

我在 Matlab 中有一个随机数数据矩阵,数字范围为 0-9(所以两列十行)。如果 A 列第 3 行大于 0,我想从第 3 行开始创建一个新列,以从 B 列的第 3 行给我 5 个以下数字。

有没有一种简单的方法可以在 matlab 的命令窗口中执行此操作?

4

1 回答 1

2

假设我正确解释了这个问题:

test = rand(10,2);
if test(3,1) > 0; new_column = test(3:7,2); end

EDIT1,每条评论:

% 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 观测值,这将出错。你需要进一步澄清你想要做什么。

是否有任何特殊原因必须在命令行中完成?

于 2014-08-04T14:07:18.773 回答