Clear Filters
Clear Filters

Changing the unknown variable in a matlab line

2 views (last 30 days)
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
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

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
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
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
zozo
zozo on 16 Aug 2012
I changed:
if sum(bin(xout>xout(1) & xout < xout(k)))==y;
to
if sum(bin(xout>xout(1) & xout < xout(k)))<=y;
and now it works! Thanks Azzi

Sign in to comment.

More Answers (1)

Image Analyst
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);

Categories

Find more on MATLAB 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!