```Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: find vector r<=p (p: a given vector)
Date: Sat, 8 Nov 2008 01:25:03 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 35
Message-ID: <gf2ppf\$q6l\$1@fred.mathworks.com>
Reply-To: <HIDDEN>
NNTP-Posting-Host: webapp-03-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1226107503 26837 172.30.248.38 (8 Nov 2008 01:25:03 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Sat, 8 Nov 2008 01:25:03 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1582760
Xref: news.mathworks.com comp.soft-sys.matlab:499623

Hello,

I am asking questions again...

I want to find all (vector) solutions for r<=p (component by component), where r, p are n-dimensional vectors, p is given, r is the unknown vector.

In other words, find all vector r=(r_1, r_2, ...r_n) satisfying r_1 <=p_1, r_2 <=p_2, ... r_n <=p_n.

Here is my code for this:

n=length(p)
R=[];
r= zeros(1,n);
flag =1;
while  flag ==1
R = [R;r];
flag =0;
for j= n:-1:1
if r(j)+1 <= p(j)
r(j+1:n) =0;
r(j) = r(j)+1;
flag = 1;
break
end
end
end

It does the job, but since I am not very experienced in Matlab, I wonder whether there're better ways than this double loop. Maybe there are some built-in functions that I should take adavantage of ?

Thank you for your advice!
Oriole

```