Changing the unknown variable in a matlab line
    2 views (last 30 days)
  
       Show older comments
    
I have the following line in matlab:
y=sum(bin(xout>xout(1) & xout < -lim));
In the above line, Iam computing the value 'y' from known row-vectors 'bin' , 'xout', and known value 'lim'
How can I write the above equation, if I want to compute the value 'lim' if the value 'y' and row-vectors 'bin', 'xout' are now known.
%%---- Following scenario ---%% PICTURE ADDED
Please help
6 Comments
  Azzi Abdelmalek
      
      
 on 16 Aug 2012
				do you mean bin(1x6000) and xout(1x200)? because with bin(1x200) and xout(1x6000).
y=sum(bin(xout>xout(1) & xout < -lim));
don't work
Accepted Answer
  Azzi Abdelmalek
      
      
 on 16 Aug 2012
        
      Edited: Azzi Abdelmalek
      
      
 on 16 Aug 2012
  
      Example: run this to find y
 bin=rand(20,1);xout=rand(20,1);lim=-0.5;
 y=sum(bin(xout>xout(1) & xout < -lim));
then run this to find lim
 lim=[];
 for k=1:length(xout);
     if sum(bin(xout>xout(1) & xout < xout(k)))==y;
         lim=[lim -xout(k)]
     end
 end
 lim=max(lim)
note: you will notice that lim is not exactly the same as the first. and if lim contains many values, you choose the bigest (-lim will be the smaller)
3 Comments
  Azzi Abdelmalek
      
      
 on 16 Aug 2012
				
      Edited: Azzi Abdelmalek
      
      
 on 16 Aug 2012
  
			if y is given by
y=sum(bin(xout>xout(1) & xout < -lim));
lim can't be empty, unless you impose y. in this case, it's possible that lim will be empty
More Answers (1)
  Image Analyst
      
      
 on 16 Aug 2012
        How about (untested)
% Get area as function of xout.
cumulativeSum = cumsum(bin);
% For a given area, called desiredArea, 
% find the index where the cumulative sum first exceeds that area.
lim = find(cumulativeSum >= desiredArea, 1, 'first');
% lim was the index.  Now find the xout value at that index:
xOutValue = xout(lim);
See Also
Categories
				Find more on Construction in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


