question about fun defining
Infos
Cette question est clôturée. Rouvrir pour modifier ou répondre.
Afficher commentaires plus anciens
I want to create this fun as below:
R=rand(100);
diff=rand(25);
sum_r1=rand(25);;
fun =@(x) x(:)+x(:).*diff(:)./sum_r1(:);
R_im=nlfilter(R,[2 2],fun);
In fact, I want to add the amount of (diff/sum_r1).x(:) in each neighborhood of 2 by 2 to x(:); I mean I have 1 diff and 1 sum_r1 for every 2 by 2 neighborhood of R. But it gives me an error!
Can anybody please help me?
4 commentaires
Walter Roberson
le 17 Juil 2012
What error does it give?
Note: it is not a good idea to use a variable named "diff" as that will interfere with use of the MATLAB function named "diff"
Andrea
le 17 Juil 2012
Walter Roberson
le 17 Juil 2012
Modifié(e) : Walter Roberson
le 17 Juil 2012
In your code, you do not have 1 diff and 1 sum_r1 for each 2 x 2 neighborhood in R: in your code, you have 1 diff and 1 sum_r1 total
Also, watch out: there are 2500 non-overlapping 2 x 2 neighborhoods in a 100 x 100 matrix, not merely 25. And nlfilter() does sliding windows, not non-overlapping windows.
Perhaps you should consider using blkproc() instead of nlfilter()
Andrea
le 17 Juil 2012
Réponses (0)
Cette question est clôturée.
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!