0〜9の範囲のMatlab番号の乱数のデータマトリックスがあります(2列と10行)。列 A の行 3 が 0 より大きい場合、行 3 から始まる新しい列を作成して、列 B の行 3 から次の 5 つの数字を取得したいと考えています。
matlab のコマンド ウィンドウでこれを行う簡単な方法はありますか?
0〜9の範囲のMatlab番号の乱数のデータマトリックスがあります(2列と10行)。列 A の行 3 が 0 より大きい場合、行 3 から始まる新しい列を作成して、列 B の行 3 から次の 5 つの数字を取得したいと考えています。
matlab のコマンド ウィンドウでこれを行う簡単な方法はありますか?
私が質問を正しく解釈していると仮定すると:
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,
ただし、(z+1) より大きいインデックスで xx == 1 の場合、z 観測値を取得できず、エラーが発生します。何をしようとしているのかをさらに明確にする必要があります。
コマンドラインでこれを行う必要がある特定の理由はありますか?