พอดีมีคนถามมาว่าจะดูว่ามีตัวแปรอะไรประกาศใช้ไปแล้วบ้างอย่างไร
ตัวแปรแบบ Global ตามปกติแล้วเราเรียกดูได้ว่ามันมีการประกาศใช้ตัวแปรอะไรบ้างไปแล้วได้ด้วยคำสั่ง
Names[“Global`*”]
และถ้าจะดูว่าเป็นตัวแปรประเภทไหน ก็ลองแบบนี้ได้ครับ
Head/@ToExpression/@Names[“Global`*”]
แต่ถ้าจะให้ลงในรายละเอียดว่าสนใจเฉพาะตัวแปรที่ประกาศใช้ด้วยเครื่องหมายเท่ากับ เช่นมีการใช้ตัวแปร x และ i ตามนี้
x=Table[i^2,{i,0,10}];
คือจะสนใจแค่ x อย่างเดียว ไม่สนใจ i อย่างนี้ก็อาจจะเขียน function เพื่อที่จะหาตัวแปรอย่าง x ได้เช่น
isVar[varname_String]:= {} =!= ToExpression[varname, InputForm, OwnValues]
เพื่อดูว่าตัวแปรนั้นกำหนดค่าเป็นแบบไหนเพราะถ้าเป็นตัวแปร i อย่างที่ผมยกตัวอย่างมา isVar จะ return ค่า False และ True สำหรับ x
ดังนั้นเราจะเลือกตัวแปรที่ได้จาก Names[“Global`*”] ที่เป็นแบบ x หรือเฉพาะที่มีการให้ค่ามาแล้วได้โดย
Select[Names[“Global`*”], isVar]
และถ้าต้องการดูว่าเป็นตัวแปรประเภทไหน ก็พิมพ์
Head/@ToExpression/@Select[Names[“Global`*”], isVar]
คงพอช่วยได้บ้างนะครับ