필터 지우기
필터 지우기

trying to fill a matrix with threshold data

조회 수: 1 (최근 30일)
DuckDuck
DuckDuck 2012년 6월 7일
my problem is simple i'm running a threshold through loop, and i want to store the idx in a matrix where each column represent the values after threshold. but because the amount of values in each column is not the same i'm facing the problem of indexing. my code looks like this
for (p=0.6:0.001:1.7); %threshold range
x1=find(x>p); %threshold value
cid=((p*1000)-5999); %trying to index
x2(:,cid)=x(x1); %trying to put threshold values to each column
end;

채택된 답변

Andrei Bobrov
Andrei Bobrov 2012년 6월 7일
t = bsxfun(@times,bsxfun(@gt,x,p),x);
x2 = arrayfun(@(ii)nonzeros(t(:,ii)),1:size(t,2),'un',0);
EDIT
out = bsxfun(@times,bsxfun(@gt,x,p),x)
or
out = bsxfun(@times,bsxfun(@gt,x,p),p)
  댓글 수: 1
DuckDuck
DuckDuck 2012년 6월 7일
ok this is a cleaner and better way to write it, but i still don't get the columns for each threshold i apply??

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by