MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

select rows satisfying a particular condition

Elysi Cochin さんによって質問されました 2019 年 4 月 25 日
最新アクティビティ Alex Mcaulley さんによって 編集されました 2019 年 4 月 25 日
having a matrix of dim 5 x 10
if i give start_index = 1, and end_index = 3, i wanted to get rows starting with value of start_index and ending with end_index excluding zeros.
eg: rows 4 and 5
cell_matrix = {[1 2 3]
[1 3] }
saved to a cell matrix

  0 件のコメント

サインイン to comment.

タグ

2 件の回答

回答者: Andrei Bobrov
2019 年 4 月 25 日
 採用された回答

% Let A - your array.
[ii,jj,v] = find(A);
z = [ii,jj,v];
z = sortrows(z,[1,2]);
out = accumarray(z(:,1),z(:,3),[],@(x){fun(x,1,3)});
function out = fun(x,b,e)
x = x(:)';
out = [];
if isequal(x([1,end]) , [b,e]) && all(diff(x(:)) > 0)
out = x;
end
end

  0 件のコメント

サインイン to comment.


回答者: Alex Mcaulley 2019 年 4 月 25 日
編集済み: Alex Mcaulley 2019 年 4 月 25 日

a = randi([0,2],5,10);
start_index = 1;
end_index = 3;
b = mat2cell(a(start_index:end_index,:),ones(1,end_index-start_index+1),size(a,2));
b = cellfun(@(x) myfun(x),b,'UniformOutput',false);
function x = myfun(x)
x(x==0) = [];
end

  0 件のコメント

サインイン to comment.



Translated by