From: gbliu <goo...@gm...> - 2011-11-23 07:22:22
|
? 2011/11/23 10:13, sfeam (Ethan Merritt) ??: > I can imagine numerical uses for arrays, but your example seems to > be just a request for an easier way to order variable names. > The following works currently, for example: > > col1 = 2; str1 = 'title 1 with multiple words' > col2 = 3; str2 = 'title 2 etc' > col3 = 6; str3 = 'title 3' > ... > COLUMN = "col" > TITLE = "str" > > plot for [i=1:7] 'data' u 1:(column(value(COLUMN.i))) title TITLE.i > > I grant you that column(value(COLUMN.i)) is a bit awkward compared > to just col[i], but if we cleaned up that syntax a bit would it address > your needs? I really don't see anything in this particular request that > requires an array in the usual mathematical sense. Thanks for your reply. The value() function can indeed solve my problem. It can be used to simulate the functionality of array, combined with eval. e.g. i=3 assign a value: eval "a".i."=3" <------> a[i]=3 access the value: value("a".i) <------> a[i] It is only the introduction of value() in the devel. version that can do this. I just know it after your reply. I have been working with the 4.4 version, which is the reason why no scheme can work and I need array functionality. But to tell the truth. this is only an awkward alternative to simulate array, which is not graceful and concise. I still hope array can be supported in the future, which is not a bad thing after all. Anyway, it works now. So the need of array is not that urgent. By the way, there seems to be a small bug: gnuplot> s="a" gnuplot> i=1 gnuplot> pr "a".1 ^ ';' expected gnuplot> pr "a".i a1 gnuplot> pr s.1 ^ ';' expected gnuplot> pr s.i a1 So, only value("a".i) and value(s.i) works, and value("a".1) and value(s.1) report errors. Is this a bug? |