Category: Mathematica

รวมชีทไฟล์ XLSX แบบง่ายๆ

เห็นมีคนเข้ามาดูโพสท์ที่ผมเขียน เกี่ยวกับการรวมชีท Excel ที่มีheader เหมือนกัน (https://www.sakngoi.com/2011/01/23/การรวมms-excel-sheets-ไว้ในหน้าเดียว/) เยอะพอสมควร ก็เลยคิดว่าเขียนแบบง่ายๆไว้ให้ใช้กันแบบออนไลน์ก็คงดี ผมก็เลยเขียนแบบง่ายไว้ให้ครับที่ https://www.wolframcloud.com/objects/cae100b5-7a2d-41ed-bed4-da1b86a5f67d   เพียงลากไฟล์ xlsx ไปปล่อยหรือคลิกเลือกแล้วกด submit ครับ เช่นถ้าผมมีไฟล์xlsx ที่แต่ล่ะชีทเป็นตามนี้ ผลที่ได้ก็คือ จะมีแค่ชีทเดียวที่รวมทุกชีกเข้าไว้ด้วยกัน   บ้างครั้งมันอาจจะขึ้น error ว่า “The supplied object cannot be interpreted as a file of type XLSX.” ก็ให้ลองกดรีเพรชหน้านั้นใหม่นะครับแล้วลองคลิกโหลดไฟล์ใหม่ครับ

ใช้งาน gcc ที่มากับ Rtools ใน Mathematica

ใน Rtools จะมี compiler ของ gcc (mingw) มาด้วยแล้วทั้งที่เป็นแบบ 32 bits และ 64 bits หากอยากจะเอาไปใช้ใน Mathematica ก็ต้องเรียกผ่าน CCompilerDriver`GenericCCompiler` ครับ แล้วเพียงเซ็ต Path ของ gcc จาก Rtools นี้ให้ถูก เช่น Needs["CCompilerDriver`GenericCCompiler`"] ทดลองเรียกใช้งาน greeter = CreateExecutable[StringJoin[ "#include <stdio.h>\n", "int main(){\n", " printf(\"Hello MinGW-w64 world.\\n\");\n", "}\n"], "helloworld", "Compiler" -> GenericCCompiler, "CompilerInstallation" -> "C:/Rtools/mingw_64", "CompilerName" -> "x86_64-w64-mingw32-gcc.exe"] Import["!\""<>greeter<>"\"","Text"] Hello MinGW-w64 world. ที่นี้ถ้าอยากจะให้

ใช้งาน OpenCLLink บนเครื่อง Dell XPS 13

ผมเพิ่งสั่งเครื่องxps 13 9370 มาใช้งานกับMathematica (Windows 10) โดยใช้กับแพ็คเกจ OpenCLLink เป็นหลักพูดง่ายๆก็คือจะใช้งานที่เกี่ยวกับการคำนวณที่ใช้ gpu เหตุที่ต้องใช้ OpenCL ไม่ใช้ CUDA เพราะ การ์ดที่มีกับเครื่องเป็น intel uhd m620 ครับ แต่ก็มีแผนจะใช้ การ์ด nvidia แบบ eGPU ครับ การใช้งาน OpenCL บนเครื่องนี้กับMathematicaเราต้องติดตั้ง amd app sdk ก่อนครับ ไม่เช่นนั้นคำสั่ง OpenCLQ ของ Mathematica มันจะให้ค่า false แล้วมันจะใช้งานไม่ได้ครับ เพิ่มเติม: ส่วนที่จะใช้ OpenCL กับ visual studio ก็ให้ลง intel sdk for opencl applications ครับ    

undocumented Mathematica functions

Mathematica แต่ล่ะเวอร์ชั่นจะมีคำสั่งใหม่ๆแปลกๆ และเจ๋งๆเพิ่มขึ้นมาเสมอ และบ่อยครั้งก็จะมี functions ที่ไม่เอกสารอธิบายการทำงานของ functions แปลกใหม่นั้น แต่มันก็มีกลุ่มคนที่ใช้งาน Mathematica แบบ hardcore หน่อยที่ชอบเปิดดู code ที่เขาเขียนมา ชอบหาอะไรแปลกเพื่อหาดูว่าจะปรับปรุงแก้ไขปัญหาที่เจอหรือที่กำลังทำอยู่ได้อย่างไร ถ้าสนใจอยากดูว่ามี undocumented functions อะไรที่น่าสนใจลองดูที่นี่ครับ https://mathematica.stackexchange.com/questions/805/what-are-some-useful-undocumented-mathematica-functions undocumented functions นี้พอในเวอร์ชั่นใหม่ๆอาจจะหายหรือกลับมาก็แล้วแต่ว่ามีการปรับปรุงอะไรกันไป หลายครั้งที่อ่านตามเวบอย่าง stackexchange หรือ stackoverflow ก็จะงงๆอยูตลอดเกี่ยวกับพวก undocumented functions นี้ว่าเขาหากันมาอย่างไร แต่ก็มีคนคุยเรื่องกันอยู่บ้างเช่น https://mathematica.stackexchange.com/questions/809/how-can-one-find-undocumented-options-or-option-values-in-mathematica    

จาก Shiny สุดท้ายกลับมา CDF

บ่น ๆๆ ตัว Shiny เวลาที่วาดกราฟด้วย ggplot2 มันค่อนข้างช้าพอสมควร ยิ่งถ้ามี function ที่ต้องคำนวณให้ได้ข้อมูลก่อนมาวาดกราฟนี่ยิ่งหนักเลย สุดท้ายก็ต้องกลับมาที่ CDF ของ Mathematica เฮ้ออออ … ตัวอย่างข้างล่างนี้ทุกครั้งที่เปลี่ยน index จะมีการคำนวณผลลัพธ์แบบ real time เลยไม่ใช่การเอาผลลัพธ์ที่ได้มาวาดเฉยๆนะครับ แล้วลองสังเกตุความเร็ว  ถ้าเทียบกับ R/Shiny นี่คนล่ะเรื่องเลย   ส่วนอันนี้อีกตัวอย่างที่เอามาไว้โชว์ดูข้อมูลเฉยๆ  ถ้าเห็น code ที่เขียนแล้วจะตกใจเพราะไม่กี่บรรทัดเอง เสียดายที่ภาษา Wolfram หรือ Mathematica นี่ไม่ค่อยเป็นกระแสสักเท่าไหร่ในบ้านเรา ถึงแม้จะสามารถใช้ได้ฟรีใน Raspberry Pi ส่วนตัวคิดว่าน่าจะเอามาใช้สอนเด็กของไทยเรามาก

แบบจำลองคณิตศาสตร์ของการแพร่เชื้อมาเลเรียในร่างกายผู้ป่วย

ผมเขียนโปรแกรมแสดงแบบจำลองของการแพร่เชื้อมาลาเรีย plasmodium falciparum ในร่างกายผู้ป่วยแบบต่างๆไว้ที่ https://github.com/slphyx/P.-falciparum-Dynamics โดยแบบจำลองเหล่านี้จะมาจากบทความต่างๆ โดยที่แต่ล่ะแบบจำลองจะมีสมมุติฐานที่แตกต่างกันออกไปแล้วแต่ผู้แต่ง โดยรานละเอียดนั้นก็สามารถหาอ่านได้จากบทความที่เขียนไว้แล้วนั้นครับ     FYI

ดูการกระจายข่าวใน FB

นักการตลาดท่านหนึ่งอยากรู้ว่าข่าวประชาสัมพันธ์ที่ท่านช่วยอยู่มีการแชร์อย่างไรใน FB ผมเลยช่วยทำให้ดูแบบง่ายๆแต่ท่านต้องหาคนมาช่วยเก็บข้อมูลให้ ในตัวอย่างนี้ network ของกลุ่มเป้าหมายบน FB ถูกสร้างขึ้นมาจากนั้นก็ลองโพสท์ข่าวลงไป แล้วนับดูว่าแต่ล่ะชั่วโมงมีการแชร์หรือเห็นหรือLike รวมกันจำนวนเท่าใด     ซึ่งวิธีนี้เราสามารถทำโมเดลเพื่อตอบได้ว่าประเภทข่าวหรือรูปแบบนำเสนอแบบใดที่จะถูกแพร่กระจายได้มากกว่ากัน พร้อมกับรู้ด้วยว่าข่าวมันจะถึงจุดอิ่มตัวเมื่อใดซึ่งมันจะช่วยให้เราว่างแผนการโฆษณาได้ง่ายขึ้นครับ