Print arguments with the help of variable

Let's say I want to print the arguments $4 till $#, how can I do this?
$# contains the number of arguments
$@ contain all the arguments as string
What i need is something like

for i in $4_till_$#; do
#do something with $i
convert $i ~/$output
done

The first 3 arguments are used as options for other things....
Thanks in advance!

Perhaps like: ${@:3:5}

Hey thanks, this worked....!
Can you explain me please what the number 5 represents here?
I mean if I need to take the arguments from $7 and next, should I do
${@:7:5}
?

It means: from-to. It works for all arrays, not only for $@. (not sure about variables, but i think there too).

 So: ${@:0:1} would be only the first 
${@:3:6} elements of array (arguments in this case) 3,4,5,6 
 ${@:4:7} elements 4,5,6,7

Ups, i am not allowed to post links yet. Go to "wiki bash-hackers org" and search for Substring/Element expansion: Arrays
as far i know

Basically the parameter expansion is ${name : offset : length}. When the parameter name is that of a variable the offset and length are string related, e.g:

$ str="123andrew789"
$ echo ${str:3:6}
andrew

When it is @ offset and length refer to positional parameters. so

${@:3:5}

will pick up parameters 3-7 (if that many exist). However

${@:3}

will pick up all positional parameters after the third.

Andrew

What about getting all the arguments after e.g. the third?

Write a test script and see:

$ cat args
#!/usr/bin/env bash
echo ${#}
echo All: "$@"
echo 3 to 5: ${@:3:3}
echo 2 to $#: ${@:2}
$ bash args a b c d e f g
7
All: a b c d e f g
3 to 5: c d e
2 to 7: b c d e f g
$ bash args a b c d e f g h i j
10
All: a b c d e f g h i j
3 to 5: c d e
2 to 10: b c d e f g h i j

Andrew