Changing the unknown variable in a matlab line

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 个评论

Now known, or not known or unknown?
what is the lengtht of bin and xout, are they big?
@ImageAnalyst: NOW known(already known). Find lim given y, bin, xout.
@Azzi: bin(1x200) and xout(1x6000).
xout was sorted?
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

请先登录,再进行评论。

 采纳的回答

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 个评论

@azzi: It is returning an empty variable 'lim'. It works for ur example(but not for all values)
*note: I have added a picture in my question, please have a look*
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
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

请先登录,再进行评论。

更多回答(1 个)

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

类别

帮助中心File Exchange 中查找有关 Construction 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by