簡體   English   中英

我如何從列B中選擇特定數量的行,具體取決於Matlab中列A是否大於0?

[英]How do I select a specific number of rows from column B depending on if Column A is greater than 0 in matlab?

我在Matlab數字中有一個隨機數的數據矩陣,范圍為0-9(所以兩列十行)。 如果第A列第3行大於0,我想從第3行開始創建一個新列,以便給我5個來自B列第3行的數字。

在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觀測值,這將出錯。 您需要進一步闡明您要做什么。

有什么特殊原因為什么必須在命令行中完成?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM