ฉันมักจะได้ยินคนบ่นว่าใบอนุญาตMATLABแพงแค่ไหน จากนั้นผมสงสัยว่าทำไมพวกเขาไม่เพียงแค่ใช้คู่หรือR แต่เป็นสิทธิหลังหรือไม่ คุณสามารถใช้ R เพื่อแทนที่ MATLAB ได้หรือไม่?
ฉันมักจะได้ยินคนบ่นว่าใบอนุญาตMATLABแพงแค่ไหน จากนั้นผมสงสัยว่าทำไมพวกเขาไม่เพียงแค่ใช้คู่หรือR แต่เป็นสิทธิหลังหรือไม่ คุณสามารถใช้ R เพื่อแทนที่ MATLAB ได้หรือไม่?
คำตอบ:
คุณสามารถใช้ R เพื่อแทนที่ MATLAB ได้หรือไม่?
ใช่.
ฉันใช้ MATLAB มาหลายปี แต่เปลี่ยนมาใช้ R เป็นหลักในช่วง 3 ปีที่ผ่านมา ณ จุดนี้พวกเขามีเหมือนกันมากกว่าไม่ ขึ้นอยู่กับฟิลด์และการใช้งานของคุณบางส่วน และอย่างที่Spencer Graves กล่าวไว้ก่อนหน้านี้มันยังขึ้นอยู่กับว่า เป็นการดีที่สุดถ้าคุณดูชุดเครื่องมือ MATLABกับCRANสำหรับงานเฉพาะก่อนที่จะตัดสินใจ
คำถามที่คล้ายกันถาม R-ช่วยเหลือไม่กี่ปีที่ผ่านมาและอีกครั้งเมื่อเร็ว ๆ นี้ David Hiebeler (ที่มหาวิทยาลัยเมน) ยังคงเปรียบเทียบ R / MATLABอย่างกว้างขวางและเป็นการอ้างอิงที่ดีที่สุดในเรื่องนี้ นอกจากนี้คุณยังสามารถตรวจสอบการเปรียบเทียบฟังก์ชันพื้นฐานนี้
นี่คือบางสิ่งที่ฉันได้สังเกตเห็นในอดีตที่ผ่านมาไม่มีสิ่งใดที่ควรจะเป็นผู้ทำลายสถิติ
ดังนั้นหากการใช้งานง่ายไม่ใช่ปัญหาหลัก (และไม่มีเหตุผลทางธุรกิจอื่น ๆ ที่จะหลีกเลี่ยงการใช้เครื่องมือโอเพนซอร์ซ) ฉันคิดว่ามีกรณีที่ต้องใช้จริงสำหรับการใช้อาร์ ชุมชนที่เข้มแข็งรอบตัว (รายการส่งจดหมาย R น่าอัศจรรย์) กำลังพัฒนาอย่างรวดเร็ว (ดู CRAN) และฟรี (ซึ่งไม่ใช่ปัญหาเล็ก ๆ !)
แก้ไข:ฉันเพิ่งจะเพิ่มจุดหนึ่งไปอีกนี้: หนังสือ"การวิเคราะห์ข้อมูลการทำงานกับ R และ MATLAB"รวมถึงบทเกี่ยวกับ "การเปรียบเทียบที่สำคัญของ Matlab และ R Languages" สิ่งนี้ครอบคลุมความแตกต่างทางไวยากรณ์ที่สำคัญบางอย่าง (เช่นการตีความจุดหรือความหมายของเครื่องหมายวงเล็บสี่เหลี่ยม []) หนังสือเล่มนี้คุ้มค่าที่จะอ่านสำหรับผู้ที่สนใจในการเขียนโปรแกรมการทำงาน (ทั้งสองภาษา)
R คือสภาพแวดล้อมสำหรับการวิเคราะห์ข้อมูลและกราฟิค ต้นกำเนิดของ MATLAB อยู่ในการคำนวณเชิงตัวเลข การใช้ภาษาพื้นฐานมีคุณสมบัติมากมายเหมือนกันถ้าคุณใช้มันสำหรับการจัดการข้อมูล (เช่นการดำเนินการเมทริกซ์ / เวกเตอร์)
R มีฟังก์ชั่นทางสถิติหายากที่อื่น (> 2000 Packages บนCRAN ) และนักสถิติจำนวนมากใช้ ในทางกลับกัน MATLAB มีกล่องเครื่องมือ (แพง) มากมายสำหรับการใช้งานด้านวิศวกรรมเช่น
ฉันใช้ทั้ง R และ MATLAB เพื่อแก้ปัญหาและสร้างแบบจำลองที่เกี่ยวข้องกับวิศวกรรมสิ่งแวดล้อมและมีการทับซ้อนกันระหว่างทั้งสองระบบมาก ในความคิดของฉันข้อดีของ MATLAB คือการใช้งานเฉพาะด้านโดเมน ตัวอย่างบางส่วนคือ:
ฟังก์ชั่นเช่นความคล่องตัวที่ช่วยในการตรวจสอบการเปลี่ยนแปลงของของไหล
กล่องเครื่องมือเช่นชุดเครื่องมือประมวลผลภาพ ฉันไม่พบแพ็คเกจ R ที่ให้การใช้งานเครื่องมือที่เท่าเทียมกันเช่นอัลกอริทึมลุ่มน้ำ
ในความคิดของฉัน MATLAB ให้ความสามารถด้านกราฟิกแบบโต้ตอบที่ดียิ่งขึ้น อย่างไรก็ตามฉันคิดว่า R ผลิตกราฟิกคุณภาพการพิมพ์ที่ดีกว่าขึ้นอยู่กับแอพพลิเคชั่น กล่องเครื่องมือเชิงคณิตศาสตร์ของ MATLAB นั้นมีการบูรณาการที่ดีกว่าและมีความสามารถมากกว่า R เทียบเท่าเช่น Ryacas หรือ rSymPy การมีอยู่ของคอมไพเลอร์ MATLAB ยังช่วยให้ระบบที่ใช้รหัส MATLAB ถูกปรับใช้อย่างอิสระจากสภาพแวดล้อมของ MATLAB - แม้ว่าความพร้อมใช้งานจะขึ้นอยู่กับจำนวนเงินที่คุณต้องใช้
สิ่งที่ฉันควรทราบอีกอย่างคือดีบักเกอร์ MATLAB เป็นหนึ่งในดีที่สุดที่ฉันได้ทำงานด้วย
ข้อได้เปรียบหลักที่ฉันเห็นด้วย R คือความเปิดกว้างของระบบและความสะดวกในการขยาย สิ่งนี้ส่งผลให้มีความหลากหลายของแพคเกจที่น่าทึ่งเกี่ยวกับ CRAN ฉันรู้ว่า Mathworks เก็บรักษากล่องเครื่องมือผู้ใช้และฉันไม่สามารถทำการเปรียบเทียบได้อย่างยุติธรรมเพราะฉันไม่ได้ใช้มันมากนัก
ความเปิดกว้างของ R ยังรวมถึงการเชื่อมโยงในโค้ดที่คอมไพล์ด้วย เมื่อก่อนฉันมีโมเดลที่เขียนใน Fortran และฉันพยายามตัดสินใจระหว่างการใช้ R หรือ MATLAB เป็นส่วนหน้าเพื่อช่วยเตรียมการป้อนข้อมูลและประมวลผลผลลัพธ์ ฉันใช้เวลาอ่านชั่วโมงเกี่ยวกับอินเทอร์เฟซ MEX เพื่อรวบรวมรหัส เมื่อฉันพบว่าฉันจะต้องเขียนและรักษาชุดคำสั่ง Fortran แยกต่างหากที่ทำตัวชี้ที่ซับซ้อนเพื่อจัดการอินเทอร์เฟซฉันจึงลดชั้น MATLAB
ส่วนต่อประสาน R ประกอบด้วยการเรียก. Fortran ([ชื่อรูทีนย่อย], [รายการอาร์กิวเมนต์]) และรวดเร็วและสะอาดกว่า
ข้อดีอย่างหนึ่งของ MATLAB over R คือคุณภาพของเอกสาร MATLAB R เป็นโอเพนซอร์ซทนทุกข์ทรมานในแง่นี้คุณลักษณะทั่วไปของหลายโครงการโอเพนซอร์ส
R คือสภาพแวดล้อมและภาษาที่มีประโยชน์มาก มันถูกใช้อย่างกว้างขวางในชุมชนชีวสารสนเทศศาสตร์และมีแพคเกจมากมายที่เป็นประโยชน์ในโดเมนนี้
ทางเลือกอื่นสำหรับ R คือOctave ( http://www.gnu.org/software/octave/ ) ซึ่งคล้ายกับ MATLAB มากก็สามารถเรียกใช้สคริปต์ MATLAB ได้
จากประสบการณ์ของผมย้ายจาก MATLAB เพื่องูหลามเป็นการเปลี่ยนแปลงได้ง่ายขึ้น - งูหลามกับnumpy / SciPyอยู่ใกล้กับ MATLAB ในแง่ของรูปแบบและมีกว่าอาร์นอกจากนี้ยังมีการเปิดแหล่ง MATLAB โดยตรงโคลนคู่และScilab
แน่นอนว่ามีมากที่ MATLAB สามารถทำเช่นนั้น R ไม่ได้ - ในพื้นที่ของฉัน MATLAB ถูกนำไปใช้อย่างมากสำหรับการรวบรวมข้อมูลแบบเรียลไทม์ - บริษัท ฮาร์ดแวร์ส่วนใหญ่มีส่วนต่อประสาน MATLAB ในขณะนี้อาจเป็นไปได้กับ RI จินตนาการมันจะเกี่ยวข้องมากขึ้น Simulink ให้พื้นที่การทำงานทั้งหมดซึ่งฉันคิดว่าหายไปจาก R. ฉันแน่ใจว่ามีอีกมาก แต่ฉันไม่คุ้นเคยกับ R มากนัก
คำตอบสั้น ๆ : ไม่แน่นอนไม่ ในขณะที่ชุดซอฟต์แวร์ทางคณิตศาสตร์ชุดใดชุดหนึ่งจะมีการทับซ้อนพวกเขาจะมีอคติต่อโดเมนปัญหาบางอย่างเสมอ อคติเหล่านี้แสดงให้เห็นอย่างชัดเจนว่าคุณต้องการใช้หนึ่งในแพ็คเกจเหล่านี้หรือไม่
ตัวอย่างของสิ่งที่ MATLAB สามารถทำได้ R ไม่สามารถเชื่อมต่อกับฮาร์ดแวร์แบบเรียลไทม์สำหรับการประมวลผลสัญญาณ / การได้มาและการควบคุม Simulinkแบบจำลองใน MATLAB สามารถกำหนดค่าทั้งสองจะทำงานในการจำลองในเครื่องของคุณก่อนที่จะรวบรวมรหัสเพื่อรันบนระบบจริงการข้อมูลที่วัดได้เป็น input และการคำนวณผลที่เหมาะสม (สิ่งที่เป็นก่อนที่จะจำลองของระบบการควบคุมที่ตอนนี้ทำงานอย่างเต็มที่ หนึ่ง). ด้วยบอร์ดฮาร์ดแวร์ที่เหมาะสมในเครื่องของคุณคุณสามารถเรียกใช้ระบบควบคุมแบบเรียลไทม์ผ่านพีซี
R ในทางกลับกันดูเหมือนว่าจะมีบทบาทอย่างแน่นหนาในสถิติซึ่งฉันแน่ใจว่ามันจะทำงานได้ดีกว่าที่ MATLAB สามารถทำได้ ในทำนองเดียวกันMathematicaนั้นดีกว่า MATLAB สำหรับคณิตศาสตร์เชิงสัญลักษณ์ Python ดีกว่า MATLAB ในการเขียนโปรแกรมทั่วไป gnuplotนั้นดีกว่าพวกมันทั้งหมดที่สร้างกราฟ (เอ่อฉันถือว่า); และอื่น ๆ
ฉันเห็นด้วยกับคำตอบมากมายที่ให้ไว้ข้างต้น เนื่องจากคำตอบนั้นขึ้นอยู่กับความแตกต่างของความสามารถของ MATLAB และ R ฉันจะพูดถึงสิ่งที่สำคัญมาก: MATLAB รวมถึง JVM และมีความสามารถในการทำงานร่วมกันอย่างไร้ที่ติกับ Java ห้องสมุดจักรวาลอันกว้างใหญ่ทั้งหมดของ Java นั้นเข้าถึงได้โดยผู้ใช้ MATLAB MATLAB IDE สามารถใช้เป็น Eclipse ของคนจนได้ ในการเปรียบเทียบ rJava ยังไม่บรรลุนิติภาวะแม้จะมีความพยายามอันมีค่าของผู้สร้าง (Roman Francois)
เราไม่สามารถทำได้เพราะลูกค้าของเราคาดหวัง / ต้องการ
ด้วยแพ็คเกจ sqldf นั้น R มีความสามารถในด้านสถิติไม่เพียง แต่การขุดข้อมูลที่จริงจังเช่นกันโดยสมมติว่ามี RAM เพียงพอในเครื่องของคุณ
และด้วยแพ็คเกจ RServe R จะกลายเป็นเซิร์ฟเวอร์ TCP / IP ปกติ เพื่อให้คุณสามารถโทรหา R out of java (หรือภาษาอื่น ๆ หากคุณมี api) นอกจากนี้ยังมีแพคเกจใน R เพื่อเรียกออก java หรืออาร์
ในฐานะผู้ใช้ทั้ง MATLAB และ R ฉันคิดว่ามันเป็นแอพพลิเคชันที่แตกต่างกันมาก ฉันมีพื้นฐานด้านวิทยาการคอมพิวเตอร์และฉันเองก็อดคิดไม่ได้ว่า R คือนักสถิติสำหรับนักสถิติในขณะที่ MATLAB เป็นโปรแกรมเมอร์สำหรับโปรแกรมเมอร์
R ทำให้ง่ายต่อการมองเห็นและคำนวณทางสถิติทุกประเภท แต่ฉันจะไม่ใช้มันในการประมวลผลสัญญาณที่เกี่ยวข้องถ้ามันขึ้นอยู่กับฉัน
เพื่อสรุปหากคุณต้องการทำสถิติให้ใช้ R หากคุณต้องการตั้งโปรแกรมให้ใช้ MATLAB หรือภาษาการเขียนโปรแกรมบางภาษา
R
เป็นภาษาโปรแกรม
การสนับสนุนกราฟิกอินเทอร์แอคทีฟนั้นดีกว่าใน matlab มากกว่าอาร์ฉันเกลียด matlab เป็นภาษา แต่ฉันรู้สึกอิจฉาเมื่อฉันเห็นว่าผู้ใช้สามารถสำรวจข้อมูลด้วยการใช้เมาส์ได้อย่างไรในขณะที่ฉันกำลังยุ่งกับการใช้คำสั่งซ้ำxlim
ๆ Matlab ยังจัดการแปลงหลายแผงได้ดีกว่าวิธี R ใด ๆ สำหรับงาน โดยทั่วไปกราฟิก R มีความรู้สึก 1960 ใช้ได้ดีสำหรับสิ่งพิมพ์ แต่ไม่ใช่ทางออกที่ดีที่สุดสำหรับการสำรวจข้อมูลแบบโต้ตอบ