comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » passing strings as arguments?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: passing strings as arguments? [message #25374 is a reply to message #25227] Mon, 04 June 2001 14:17 Go to previous messageGo to previous message
mperrin+news is currently offline  mperrin+news
Messages: 81
Registered: May 2001
Member
noymer@socrates.Berkeley.EDU <noymer@socrates.Berkeley.EDU> wrote:
> I am using Ronn Kling's PLOTSYM, the usage of which is:
>
> plot,x,y,psym=plotsym(/circle,scale=2,/fill)
>
> instead of /circle, one could use /box, /triangle, etc...
>
> I have something like:
>
> IF (condition) THEN myshape=string('/circle') ELSE
> myshape=string('/triangle')
> ENDIF
>
> and I want to pass the string "myshape" to plotsym as the
> first argument but I can't figure out how to do this in IDL 5.3.
>
> It seems not to like strings being passed there.

Well, right. The argument "/circle" is just shorthand for "circle=1", which
(a) is a numerical not a string parameter and (b) is part of the interpreted
code rather than data. So you can't just pass in a string.

The easiest way to do this is probably with the "execute" command:

IF (condition) THEN myshape=string('/circle') ELSE
myshape=string('/triangle')
ENDIF

commandstr = "plot,x,y,psym=plotsym("+myshape+",scale=2,/fill)"
result = execute(commandstr)

Alternatively, you could do something like:

IF (condition) THEN mytriangle=1 ELSE
mycircle=1
ENDIF

plot,x,y,psym=plotsym(circle=mycircle, triangle=mytriangle,scale=2,/fill)

But that's a bit uglier and scales less well to multiple arguments.

- Marshall
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: IDL 5.4 and MacOS 9.1
Next Topic: Re: I paid for my new boat with this

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 15:12:48 PDT 2025

Total time taken to generate the page: 0.96732 seconds