From: Hydroman S on
For a vector s, I found its maximum value, and located it

s=rand(20,1);
max(s);
find(s==max(s));


Now I want to add a value of say x=10; to the max(s) and
place it in the following row(raw after max(s)), then add
a value of 20 to the max(s)and add it to the following
raw....etc till the end raw?

Any suggestions?

From: Roger Stafford on
"Hydroman S" <amirgsalem(a)gmail.com> wrote in message <fvo3dr$8qk
$1(a)fred.mathworks.com>...
> For a vector s, I found its maximum value, and located it
>
> s=rand(20,1);
> max(s);
> find(s==max(s));
>
>
> Now I want to add a value of say x=10; to the max(s) and
> place it in the following row(raw after max(s)), then add
> a value of 20 to the max(s)and add it to the following
> raw....etc till the end raw?
>
> Any suggestions?
-----------
First of all, you don't need 'find' here. Just use the index returned by max:

[mx,ix] = max(s); % ix is the index of the maximum element of x

The rest of what you are asking is rather hard to interpret. Your misuse of
the word 'raw' is confusing! My guess is that, starting with ix+1, you wish to
place mx+10, mx+20, ..., in ix+1, ix+2, etc., on to the end of s. Is that it?

s(ix+1:end) = mx+(10:10:10*(length(s)-ix))';

Roger Stafford

From: Roger Stafford on
"Roger Stafford" <ellieandrogerxyzzy(a)mindspring.com.invalid> wrote in
message <fvo564$i8p$1(a)fred.mathworks.com>...
> First of all, you don't need 'find' here. Just use the index returned by max:
>
> [mx,ix] = max(s); % ix is the index of the maximum element of x
>
> The rest of what you are asking is rather hard to interpret. Your misuse
of
> the word 'raw' is confusing! My guess is that, starting with ix+1, you wish
to
> place mx+10, mx+20, ..., in ix+1, ix+2, etc., on to the end of s. Is that it?
>
> s(ix+1:end) = mx+(10:10:10*(length(s)-ix))';
>
> Roger Stafford
-------
After looking at your wordage again, it seems possible that what you
actually want is this:

[mx,ix] = max(s); % ix is the index of the maximum element of x
s(ix+1:end) = s(ix+1:end) + mx+(10:10:10*(length(s)-ix))';

Roger Stafford


From: Hydroman S on
Thank you Roger. Your first reply answers my question.
Apologies for the &#8216;raw&#8217; stuff, sometimes this stuff comes
from the gut instead of the brain.

Here is exactly what I wanted to do, and thanks again for
your help:

s=rand(20,1);
[mx,ix] = max(s); % ix is the index of the maximum element
of x
s(ix+1:end) = mx+(10:10:10*(length(s)-ix))';
s(1:ix-1)= mx-(10:10:10*(ix-1))';