Changing the unknown variable in a matlab line

2 次查看(过去 30 天)
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 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2012-8-16
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

请先登录,再进行评论。

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2012-8-16
编辑:Azzi Abdelmalek 2012-8-16
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 Abdelmalek
Azzi Abdelmalek 2012-8-16
编辑:Azzi Abdelmalek 2012-8-16
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 2012-8-16
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 个)

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

类别

Help CenterFile Exchange 中查找有关 Cell Arrays 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by