ฟังก์ชัน eval(str)


มาเริ่มเรื่องแรกเกี่ยวกับ MATLAB กันดีกว่า (ในขณะที่รอผลการทดลองอยู่)
เคยใช้งาน MATLAB ในลักษณะที่ต้องสร้างฟังก์ชันหรือตัวแปรที่มีเลขกำกับ
เช่น

s1, s2, s3, s4, s5, s6, … , s20

ทำนองนี้ไหมครับ ถ้าเป็นตัวเลขปกติไล่กันไปก็ง่าย แต่ถ้าเป็นเมตริกซ์หรือ
ฟังก์ชันก็เสียเวลาน่าดูถ้าจะใช้วิธีพิมพ์ไปเรื่อย ๆ แท้จริงแล้วมีวิธีการใช้การวน
รอบร่วมกับฟังก์ชัน eval ช่วย ยกตัวอย่างเช่น

s1 = 0;
for i = 2:20
   sx = sprintf(‘s%d = s(%d-1)^2’,num2str(i), num2str(i));

   eval(sx);
end

 

ผลที่ได้ก็จะเป็นตัวแปร s1-s20 ตามต้องการ ลองไปใช้กันดูนะครับ

Advertisements

One comment on “ฟังก์ชัน eval(str)

  1. จริง ๆ แล้วไม่จำเป็นต้องใช้ eval นะ (ฟังก์ชันนี้ไม่ควรใช้)
    เราสามารถใช้
    S(i) แทนได้เลย

    เวลาอ้างถึงก็ใช้เลข i เป็นตัวอ้างถึงแทน

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s