[英]Subsetting rows from Matlab for which specific column has value greater than zero
[英]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.