ما هو Matlab جيد ل؟ لماذا تستخدمها الجامعات؟ متى يكون أفضل من بيثون؟ [مغلق

StackOverflow https://stackoverflow.com/questions/179904

  •  05-07-2019
  •  | 
  •  

سؤال

لقد طُلب مني مؤخرًا تعلم بعض أساسيات MATLAB لفصل.

ما الذي يجعله رائعًا للباحثين والأشخاص الذين يعملون في الجامعة؟ لقد رأيت أنه من الرائع العمل مع المصفوفات وتخطيط الأشياء ... (الأشياء التي يمكن القيام بها بسهولة في بيثون باستخدام بعض المكتبات).

كتابة وظيفة أو تحليل ملف أمر مؤلم. ما زلت في البداية ، ما الذي أفتقده؟

في العالم "الحقيقي" ، ما الذي يجب أن أفكر فيه في استخدامه؟ متى يمكن أن تفعل أفضل من بيثون؟ للأفضل ، أعني: طريقة سهلة لكتابة شيء ما.


تحديث 1: أحد الأشياء التي أود أن أعرفها أكثر من غيرها "هل أفتقد شيئًا؟" :د

تحديث 2: شكرا لإجاباتك. سؤالي لا يتعلق بالشراء أو عدم شراء Matlab. تتمتع الجامعة بإمكانية إعطائي نسخة من نسخة قديمة من MATLAB (MATLAB 5 أعتقد) مجانًا ، دون كسر الترخيص. أنا مهتم بقدراتها وإذا كانت تستحق دراسة أعمق (لن أحتاج إلى أي شيء أكثر من أساسي MATLAB في ODER لاجتياز الامتحان: P) سيكون أفضل من بيثون لنوع معين من المهمة في العالم الحقيقي.

هل كانت مفيدة؟

المحلول

آدم هو حق جزئيا فقط. كثير ، إن لم يكن أكثر من غيرهم ، لن يلمسها علماء الرياضيات أبدًا. إذا كانت هناك أداة كمبيوتر تستخدم على الإطلاق ، فستكون شيئًا مثل الرياضيات أو خشب القيقب. الإدارات الهندسية ، من ناحية أخرى ، تعتمد عليها غالبًا وهناك بالتأكيد أشياء مفيدة لبعض علماء الرياضيات التطبيقيين. كما أنه يستخدم بشدة في الصناعة في بعض المجالات.

شيء عليك أن تدركه حول Matlab هو أنه بدأ كملف فورتران مكتبات للجبر الخطي. لفترة طويلة ، كان لديه موقف مفاده أن "كل العالم عبارة عن مجموعة من الزوجي (العوامات)". كلغة ، نمت عضويا للغاية ، وهناك بعض العيوب التي تخبز إلى حد كبير ، إذا نظرت إليها كلغة البرمجة.

ومع ذلك ، إذا نظرت إليها كبيئة للقيام بأنواع معينة من الأبحاث ، فإنها لديها بعض نقاط القوة الحقيقية. إنه جيد بقدر ما يحصل على الجبر الخطي النقطة العائمة. الترميز بسيط وقوي ، التنفيذ سريع وموثوق به. إنه جيد جدًا في توليد المخططات والمهام التفاعلية الأخرى. هناك عدد كبير من "صناديق الأدوات" مع رمز جيد لمهام معينة ، وبأسعار معقولة. يوجد مجتمع كبير من المستخدمين يشتركون في الرموز العددية (Python + نومبي لا يوجد شيء في نفس الدوري ، على الأقل حتى الآن)

Python ، الثآليل وجميعها ، هي لغة برمجة أفضل بكثير (وكذلك العديد من الآخرين). ومع ذلك ، فهذا عقد من الزمان أو نحو ذلك من حيث الأدوات.

النقطة الأساسية هي أن غالبية الأشخاص الذين يستخدمون MATLAB ليسوا مبرمجين حقًا ، ولا يريدون أن يكونوا كذلك.

إنه خيار رديء للغة برمجة عامة ؛ إنه أمر غريب ، بطيء بالنسبة للعديد من المهام (تحتاج إلى تجميل الأشياء للحصول على رموز فعالة) ، وليس من السهل الاندماج مع العالم الخارجي. من ناحية أخرى ، بالنسبة للأشياء التي من الجيد جدًا ، فهي جيدة جدًا. عدد قليل جدا من الأشياء مقارنة. هناك شركة لديها دعم معقول ومن يعرف عدد سنوات الرجل التي وضعها فيها. هذا يمكن أن يهم في الصناعة.

بالنظر إلى مقارنة Python مقابل Matlab بدقة ، فهي في الغالب أدوات مختلفة لوظائف مختلفة. في المناطق التي يتداخلون فيها قليلاً ، من الصعب تحديد ما هو أفضل الطريق للذهاب (يعتمد كثيرًا على ما تحاول القيام به). لكن في الغالب ليس كل شيء جيدًا في نقاط القوة الأساسية لـ Matlab ، والعكس صحيح.

نصائح أخرى

معظم الإجابات لا تحصل على هذه النقطة.

هناك سبب واحد Matlab جيد جدًا ويستخدم على نطاق واسع:

ترميز سريع للغاية

أنا طالب دكتوراه في رؤية الكمبيوتر وأستخدم MATLAB لمدة 4 سنوات ، قبل أن أستخدم لغتي المختلفة بما في ذلك C ++ و Java و PHP و Python ... يستخدم معظم باحثو رؤية الكمبيوتر بشكل حصري MATLAB.

1) يحتاج الباحثون إلى النماذج الأولية السريعة

في بيئة البحث ، لدينا (نأمل) أفكارًا جديدة في كثير من الأحيان ، ونريد أن نختبرها سريعًا حقًا لمعرفة ما إذا كان الأمر يستحق الاستمرار في هذا الاتجاه. وغالبًا ما يكون جزءًا فرعيًا صغيرًا فقط من ما نعرفه مفيدًا.

Matlab هو في كثير من الأحيان أبطأ في وقت التنفيذ, ، لكننا لا نهتم كثيرًا. لأننا لا نعرف مسبقًا ما هي الطريقة التي ستكون ناجحة ، علينا أن نجرب أشياء كثيرة ، لذلك رقبة الزجاجة لدينا هي وقت البرمجة, ، لأن الكود الخاص بنا سوف يعمل في أغلب الأحيان عدة مرات للحصول على النتائج للنشر ، وهذا كل شيء.

لذلك دعونا نرى كيف يمكن أن يساعد Matlab.

2) كل ما أحتاجه موجود بالفعل

لدى Matlab الكثير من الوظائف التي أحتاجها ، حتى لا أضطر إلى إعادة اختراعها طوال الوقت:

تغيير فهرس المصفوفة إلى الإحداثيات 2D: ind2sub استخراج جميع بقع الصورة: im2col; ؛ حساب رسم بياني للصورة: hist(Im(:)); ؛ ابحث عن العناصر الفريدة في القائمة unique(list); ؛ أضف متجهًا إلى جميع متجهات المصفوفة bsxfun(@plus,M,V); ؛ الالتفاف على المصفوفات n- الأبعاد convn(A); ؛ احسب وقت حساب الجزء الفرعي من الكود: tic; %%code; toc; ؛ الواجهة الرسومية لاقتصاص صورة: imcrop(im);

يمكن أن تكون القائمة طويلة جدًا ... ومن السهل جدًا العثور عليها باستخدام المساعدة.

الأقرب إلى ذلك هو Python ... لكنه مجرد ألم في Python ، يجب أن أذهب إلى Google في كل مرة للبحث عن اسم الوظيفة التي أحتاجها ، ثم أحتاج إلى إضافة حزم ، والحزم غير متوافقة واحد مع الآخر ، تنسيق تغيير المصفوفة ، وظيفة الالتواء تتعامل فقط

3) IDE

مثال: أطلق نصًا. ينتج خطأ بسبب المصفوفة. لا يزال بإمكاني تنفيذ الكود باستخدام سطر الأوامر. أتصور ذلك: imagesc(matrix). أرى أن السطر الأخير من المصفوفة غريب. أنا أصلح الخطأ. لا تزال جميع المتغيرات محددة. أقوم بتحديد المتبقية من الكود ، واضغط على F9 لتنفيذ التحديد ، ويستمر كل شيء. تصحيح الأخطاء يصبح سريعًا, ، بفضل ذلك.

يؤكد Matlab بعض أخطائي قبل التنفيذ. لذلك يمكنني رؤية المشاكل بسرعة. إنه يقترح طريقة لجعل الكود الخاص بي أسرع.

هناك رائع البروفيلر وشملت في IDE. KcahceGrind هو ألم لاستخدامه مقارنة بذلك.

Ides Python هي Awefull. Python بدون ipython غير قابل للاستخدام. أنا لا أتمكن من التصحيح ، باستخدام ipython.

+الإكمال التلقائي ، مساعدة لحجج الوظيفة ، ...

4) رمز موجز

لتطبيع جميع أعمدة المصفوفة (التي أحتاجها طوال الوقت) ، أفعل:bsxfun(@times,A,1./sqrt(sum(A.^2)))

لإزالة من مصفوفة جميع colums مع مبلغ صغير:

A(:,sum(A)<e)=[]

للقيام بالحساب على وحدة معالجة الرسومات:

gpuX = gpuarray(X); 
%%% code normally and everything is done on GPU

لتشويه الرمز الخاص بي:

parfor n=1:100
%%% code normally and everything is multi-threaded

ما هي اللغة التي يمكن أن تغلب عليها؟

وبالطبع ، نادراً ما أحتاج إلى صنع حلقات ، يتم تضمين كل شيء في الوظائف ، مما يجعل القراءة أسهل في القراءة ، ولا صداع مع المؤشرات. لذلك يمكنني التركيز ، على ما أريد برمجته ، وليس كيفية برمجته.

5) أدوات التخطيط

Matlab تشتهر بأدوات التخطيط. إنهم مفيدون للغاية.

أدوات التخطيط في Python لديها ميزات أقل بكثير. ولكن هناك شيء واحد مزعج للغاية. يمكنك رسم الأرقام مرة واحدة فقط لكل نص ؟؟؟ إذا كان لديّ برنامج نصي ، فلا يمكنني عرض الأشياء في كل خطوة ---> عديمة الفائدة.

6) الوثائق

كل شيء سريع للغاية للوصول ، كل شيء واضح تمامًا ، يتم اختيار أسماء الوظائف جيدًا. مع Python ، أحتاج دائمًا إلى Google Stuff ، انظر في المنتديات أو Stackoverflow .... COMPLICE TIME HOG.

ملاحظة: أخيرًا ، ما أكرهه مع Matlab: سعره

لقد كنت أستخدم Matlab لسنوات عديدة في بحثي. إنه أمر رائع بالنسبة للجبر الخطي ولديه مجموعة كبيرة من أدوات الأدوات المكتوبة جيدًا. بدأت أحدث الإصدارات في دفعها إلى أن تكون أقرب إلى لغة للأغراض العامة (تحسينات أفضل ، ونموذج كائن أفضل بكثير ، وقواعد النطاق الأكثر ثراءً ، وما إلى ذلك).

في الصيف الماضي ، كان لدي وظيفة حيث استخدمت Python + Numpy بدلاً من Matlab. لقد استمتعت بتغيير السرعة. إنها لغة "حقيقية" (وكل ما يستلزمه) ، ولديه بعض الميزات الرقمية الرائعة مثل المصفوفات البث. أنا أيضا أحب بيئة ipython.

إليك بعض الأشياء التي أفضلها في Matlab:

  • التناسق: أمضت Mathworks الكثير من الجهد في جعل صناديق الأدوات تبدو وتعمل مثل بعضها البعض. لم يقوموا بعمل مثالي ، لكنها واحدة من أفضل ما رأيته في قاعدة الشفرة التي يبلغ عمرها عقودًا.
  • توثيق: أجد أنه من المحبط للغاية معرفة بعض الأشياء في Numpy و/أو Python لأن جودة الوثائق متقطعة: بعض الأشياء موثقة جيدًا ، بعضها لا على الإطلاق. غالبًا ما يكون الأمر أكثر إحباطًا عندما أرى أشياء يبدو أنها تحاكي Matlab ، لكن لا تفعل ذلك الى حد كبير العمل نفس الشيء. القدرة على الحصول على المصدر لا تقدر بثمن (لكي تكون عادلة ، فإن معظم صناديق أدوات MATLAB شحن مع المصدر أيضًا)
  • الاكتئاب: لما أقوم به ، غالبًا ما يكون بناء جملة Matlab أكثر إحكاما (ولكن ليس دائمًا)
  • قوة الدفع: لدي الكثير من رمز MATLAB للتغيير الآن

إذا لم يكن لدي مثل هذه قاعدة الشفرة الكبيرة الموجودة ، فسأفكر بجدية في التحول إلى Python + Numpy.

امسك كل شيء. متى كانت آخر مرة قمت فيها برمجة الآلة الحاسبة الخاصة بك للعب Tetris؟ هل تعتقد بالفعل أنه يمكنك كتابة أي شيء تريده في ذاكرة الوصول العشوائي 128k؟ على الأرجح لا. Matlab ليس للبرمجة إلا إذا كنت تتعامل مع المصفوفات الضخمة. إنها آلة حاسبة الرسوم البيانية التي تفلت منها عندما تحصل على ميغابايت إلى gigabytes من البيانات لتتمكن من التغلب و/أو التخطيط. تعلم فقط الأشياء الأساسية ، ولكن أيضًا لا تقتل نفسك تحاول أن تجعل بيثون آلة حاسبة للرسوم البيانية.

ستشعر بسرعة عندما ترغب في التغلب على MATLAB ، ومخططه أو الاستكشاف في MATLAB وعندما تريد الحصول على كل ما تقدمه Python. يتحول الكثير من المهندسين إلى معالجة ما قبل وبعد المعالجة في Python أو Perl. في بعض الأحيان حتى مجرد دعوة إلى Matlab للبتات الصلبة.

إنها أدوات مختلفة تمامًا لدرجة أنه يجب عليك تعلم نقاط القوة الأساسية أولاً دون محاولة استبدال واحدة بالآخر. منحت لتوفير المال إما أن أستخدم أوكتاف أو تبخير على السهولة وأتعلم العمل مع المصفوفات المتفرقة في بيرل أو بيثون.

يعد Matlab رائعًا للقيام بمعالجة الصفيف ، والقيام بوظائف الرياضيات المتخصصة ، وإنشاء مؤامرات لطيفة بسرعة.

من المحتمل أن أستخدمه فقط للبرامج الكبيرة إذا كان بإمكاني استخدام الكثير من معالجة المصفوفة/المصفوفة.

لا داعي للقلق بشأن IDE بقدر ما في الحزم الرسمية ، لذلك من الأسهل على الطلاب دون الكثير من خبرة البرمجة لالتقاطها.

MATLAB هي قطعة شهيرة ومكيفة على نطاق واسع من حزمة البرامج المتطورة. سيكون من الخطأ الاعتقاد بأنه مجرد برنامج رياضيات لأنه يحتوي على مجموعة واسعة من "صناديق الأدوات". لقد استخدمت مؤخرًا Matplotlib لرسم بعض البيانات من قاعدة بيانات وقامت بالمهمة دون الحاجة إلى جميع أجراس وصفارات ماتلاب. ومع ذلك ، قد لا يكون من المناسب مقارنة Python و Matlab في كل موقف. كما هو الحال مع كل شيء آخر ، يعتمد القرار على ما تحتاج إلى القيام به.

لقد استخدمت MATLAB في المرحلة الجامعية الأولى لتصميم أنظمة التحكم والمحاكاة وأيضًا لمعالجة الصور في مدرسة الدراسات العليا. بالنسبة لهذه الحقول ، فإن MATLAB أكثر منطقية بسبب صناديق أدوات التحكم القوية ومعالجة الصور. كما ذكر الجميع ، فإن عمليات المصفوفة ، التي تستخدم في كل برنامج نصي MATLAB تحتاج إلى كتابته ، سهلة للغاية مع MATLAB.

شيء آخر لطيف في Matlab هو أنه من السهل للغاية وسريع القيام النماذج الأولية وتجربة الأفكار باستخدام وظائف صندوق الأدوات المضمنة. على سبيل المثال ، لا يتطلب الأمر أي جهد لاستيراد صورة وحساب رسم بياني أو القيام ببعض المعالجة البسيطة عليها. يمكن أن تكون عيب Matlab هو السرعة بسبب طبيعتها المفسرة. ومع ذلك ، إذا كان المرء يحتاج حقًا إلى السرعة مما يمكنه اختيار تنفيذ المنطق المختبر في C/C ++ ، إلخ.

لمزيد من المقارنة مع Python ، أستطيع أن أقول إن Matlab يوفر حزمة كاملة لك للقيام بعملك دون الحاجة إلى البحث عن المكتبات الخارجية وتنفيذ وظائف إضافية.

لم يتم ذكر نقطة أخيرة عن Matlab التي أراها في الإجابات هنا هي أن لديها بيئة نمذجة/محاكاة بصرية قوية للغاية تسمى Simulink. من الأسهل تصميم ومحاكاة أنظمة أكبر باستخدام Simulink.

أخيرًا ، مرة أخرى ، كل هذا يتوقف على المشكلة التي تحتاج إلى حلها. إذا كان بمقدور مجال مشكلتك الاستفادة من أحد صناديق أدوات MATLAB وكان لديك حق الوصول إلى MATLAB ، فيمكنك التأكد من أن لديك الأداة المناسبة لحلها.

Matlab ، كما ذكر الآخرين ، رائع في معالجة المصفوفة ، وقد تم بناؤه في الأصل كامتداد للمعروفة بلاس و لاباك المكتبات المستخدمة للجبر الخطي. إنه يتفاعل بشكل جيد مع لغات أخرى مثل Java ، وهي مفضلة جيدًا من قبل الشركات الهندسية والعلمية لمكتباتها المتقدمة والموثقة. من ما أعرفه عن Python و Numpy ، بينما يشتركان في العديد من القدرات الأساسية لـ Matlab ، فإنهم لا يملكون اتساع القدرات الكاملة وعمق القدرات مع مكتباتهم.

أنا شخصياً أستخدم Matlab لأن هذا ما تعلمته في فترة التدريب الداخلي ، هذا ما استخدمته في مدرسة الدراسات العليا ، وهذا ما استخدمته في وظيفتي الأولى. ليس لدي أي شيء ضد بيثون (أو أي لغة أخرى). إنه فقط ما استخدمته أيضًا.

أيضًا ، هناك نسخة مجانية أخرى بالإضافة إلى Scilab ذكرها @جيم ج من GNU دعا أوكتاف.

أنا شخصياً أميل إلى التفكير في MATLAB كآلة حاسبة تفاعلية للمصفوفة وأداة التخطيط مع بعض إمكانات البرمجة النصية ، بدلاً من أن تكون لغة برمجة كاملة مثل Python أو C. سبب نجاحها هو أن Matrix Stuff وتخطيط العمل المربع ، ويمكنك القيام ببعض الأشياء المحددة للغاية فيه دون أي معرفة فعلية للبرمجة. اللغة ، كما تشير ، محبطة للغاية لاستخدامها في مهام أكثر للأغراض العامة ، مثل أبسط معالجة السلسلة. بناء الجملة الخاص به غريب ، ولم يتم إنشاؤه مع التجريدات اللازمة لمشاريع أكثر من 100 خط أو نحو ذلك في الاعتبار.

أعتقد أن السبب في أن الناس يحاولون استخدام MATLAB كلغة برمجة خطيرة هو أن معظم المهندسين (هناك استثناءات ؛ شهادتي في الهندسة الطبية الحيوية وأحب البرمجة) مبرمجين فظيعين ويكرهون البرمجة. لقد تم تدريسهم Matlab في الكلية في الغالب من أجل Matrix Math ، ويتعلمون بعض البرمجة البدائية كجزء من تعلم Matlab ، ويفترضون فقط أن Matlab جيد بما فيه الكفاية. لا أستطيع التفكير في أي شخص أعرفه والذي يعرف أي لغة إلى جانب Matlab ، ولكن لا يزال يستخدم Matlab لأي شيء آخر غير تطبيقات أرقام الأرقام الخالصة.

السبب الأكثر ترجيحًا في استخدامه كثيرًا في الجامعات هو أن كلية الرياضيات تستخدم في ذلك وفهمها ومعرفة كيفية دمجها في منهجها.

بين matplotlib+pylab و نومبي لا أعتقد أن هناك فرقًا فعليًا بين Matlab و Python بخلاف القصور الذاتي الثقافي كما اقترح Adam Bellaire.

أعتقد أن لديك نقطة جيدة للغاية وهي تلك التي نشأت في الشركة التي أعمل فيها. الشركة محدودة في قدرتها على تطبيق MATLAB بسبب تكاليف الترخيص المعنية. أثبت أحد المطورين أن بيثون كان بديلاً مناسبًا للغاية لكنه سقط على آذان جاهل لأنه لأصحاب تلك الأذنين ...

  1. لم يكن أحد في الشركة يعرف بيثون على الرغم من أن الكثير منا أراد استخدامه.
  2. لدى Matlab اسمًا وشركة وفرقة عمل خلفها لحل أي مشاكل.
  3. كان هناك (ولكن ليس كثيرًا) من مشاريع MATLAB القديمة التي ستحتاج إلى إعادة كتابة.

إذا كان يستحق 10000 جنيه إسترليني (؟؟) يجب أن يكون يستحق كل هذا العناء !!

أنا معك هنا. بيثون هو بديل جيد جدا لماتلاب.

يجب أن أشير إلى أنه قيل لي إن الشركة تستخدم ربما تتراوح بين 5 ٪ إلى 10 ٪ من قدرات MATLABS وهذا هو الأساس لتوافقتي مع الملصق الأصلي

MATLAB هي أداة رائعة ل

  • النماذج الأولية
  • محاكاة الهندسة و
  • تصور سريع للبيانات

يمكنك حقًا اللعب مع أفكارك وتصورها واختبارها على مجموعة البيانات بشكل فعال للغاية. لا ينبغي اعتباره بديلاً لغتي البرامج الأخرى المستخدمة لتطوير المنتج. أوصي بشدة بالمهام أعلاه ، على الرغم من أنها باهظة الثمن - بدائل مجانية مثل أوكتاف وبيثون اللحاق بالركب.

يبدو أن الجمود النقي. عند استخدامه ، يكون الجميع مشغولين جدًا بحيث يتعلمون IDL أو Numpy بتفاصيل كافية للتبديل ، ولا يرغبون في إعادة كتابة برامج عمل جيدة. لحسن الحظ ، هذا ليس صحيحًا تمامًا ، ولكنه صحيح بما فيه الكفاية في أماكن كافية أن Matlab سيكون في وقت طويل. مثل فورتران (في الاستخدام النشط حيث أعمل!)

السبب الرئيسي الذي يجعله مفيدًا في الصناعة هو المكونات الإضافية المصممة فوق الوظيفة الأساسية. لقد ركزت جميع تطوير MATLAB النشط على مدى السنوات القليلة الماضية على هذه.

لسوء الحظ ، لن تتاح لك فرصة كبيرة لاستخدامها في بيئة أكاديمية.

أعلم أن هذا السؤال قديم ، وبالتالي لم يعد يراقب ، لكنني شعرت أنه من الضروري التعليق. بصفتي مهندسًا للفضاء في Georgia Tech ، أستطيع أن أقول ، بدون أي مخاوف ، أن Matlab رائع. يمكنك الحصول عليها بسرعة مع جداول بيانات Excel الخاصة بك لسحب البيانات حول مدى ارتفاع الصواريخ والسريعة ، وكيف تؤثر الرياح على تلك الصواريخ نفسها ، وكيف مهمة المحركات المختلفة. وراء الصواريخ ، تلعب مفاهيم مماثلة للسيارات والشاحنات والطائرات والمركبة الفضائية وحتى ألعاب القوى. يمكنك سحب كميات كبيرة من البيانات ، ومعالجة كل ذلك ، والتأكد من أن نتائجك كما ينبغي. في حالة إيقاف تشغيل شيء ما ، يمكنك إضافة استراحة سطر حيث يحدث خطأ لتصحيح البرنامج دون الحاجة إلى إعادة الترجمة في كل مرة تريد تشغيل البرنامج. هل هو أبطأ من بعض البرامج الأخرى؟ حسنا ، من الناحية الفنية. أنا متأكد من أنك إذا كنت ترغب في القيام بالرقم الذي يطحن ، فهو أمر رائع على معالج رسومات NVIDIA ، فمن المحتمل أن يكون أسرع ، لكنه يتطلب المزيد من الجهد مع تصحيح الأخطاء الأكثر صعوبة.

كلغة برمجة عامة ، Matlab ضعيف. ليس المقصود العمل ضد Python أو Java أو ActionScript أو C/C ++ أو أي لغة أخرى للأغراض العامة. إنه مخصص للهندسة والرياضيات المتخصصة التي يوحي بها الاسم ، وهو يفعل ذلك بشكل خيالي.

كان Matlab غلافًا حول المكتبات الشائعة. وفي كثير من الحالات لا يزال. عندما تصل إلى مجموعات بيانات أكبر ، فإنه يحتوي على العديد من التحسينات الإضافية ، بما في ذلك فحص المشكلات الشائعة والغلاف الخاص (تقليل المصفوفات المتفرقة حيث تكون مفيدة ، على سبيل المثال) ، ومناولة الحافة. في كثير من الأحيان ، يمكنك تقديم مشكلة في شكل قياسي إلى وظيفة عامة ، وستحدد أفضل خوارزمية أساسية لاستخدامها بناءً على بياناتك. بالنسبة إلى N Small N ، تكون جميع الخوارزميات سريعة ، لكن Matlab يجعل تحديد الخوارزمية المثلى غير قضية.

هذا مكتوب من قبل شخص يكره Matlab ، وحاول استبداله بسبب مشكلات التكامل. من سؤالك ، تذكر الحصول على Matlab 5 واستخدامه لدورة. في هذا المستوى ، قد ترغب في النظر إلىأوكتاف, ، تطبيق مفتوح المصدر مع نفس بناء الجملة. أظن أن الأمر متروك لمستويات MATLAB 5 الآن (ألعب معها فقط). يجب أن يتيح لك "اجتياز الاختبار الخاص بك". بالنسبة لوظائف Matlab العارية ، يبدو أنه قريب. إنه يفتقر إلى دعم صندوق الأدوات (والذي ، مرة أخرى ، يعمل في الغالب على إعادة صياغة مكالمات الوظيفة إلى النماذج المألوفة للمهندسين في هذا المجال ويختار الخوارزمية الأساسية الصحيحة للاستخدام).

أحد أسباب تحظى Matlab بشعبية لدى الجامعات هو نفس السبب في أن الكثير من الأشياء تحظى بشعبية بين الجامعات: هناك الكثير من الأساتذة المطلعين عليها ، وهو قوي إلى حد ما.

لقد تحدثت إلى الكثير من الأشخاص الذين يهتمون بشكل خاص بقدرة Matlab الناشئة على الاستفادة من وحدة معالجة الرسومات بدلاً من العمل بشكل تسلسلي. بعد أن استخدمت Python في مدرسة Grad ، أتمنى لو كان لدي لعق للعمل مع Matlab في هذه الحالة. من المؤكد أنه سيجعل حسابات مساحة المتجه نسيمًا.

لقد مر بعض الوقت منذ أن استخدمت MATLAB ، ولكن من الذاكرة ، توفر (وإن كان مع الإضافات الإضافية) القدرة على إنشاء مصدر للسماح لك بتحقيق الخوارزمية الخاصة بك على DSP.

نظرًا لأن Python هي لغة برمجة للأغراض العامة ، فلا يوجد سبب يمنعك من فعل كل شيء في Python الذي يمكنك القيام به في Matlab. ومع ذلك ، يوفر MATLAB عددًا من الأدوات الأخرى - على سبيل المثال. مجموعة واسعة جدًا من ميزات DSP ، مجموعة واسعة من ميزات المجال S و Z.

كل هذه يمكن ترميزها باليد في بيثون (لأنها لغة للأغراض العامة) ، ولكن إذا كان كل ما تتبعه هو أن تنفق الأموال على MATLAB هل الخيار الأرخص؟

كما تم ضبط هذه الميزات للأداء. على سبيل المثال. تحدد الوثائق الخاصة بـ Numpy أن تحويل فورييه الخاص بهم قد تم تحسينه لقوة مجموعات بيانات 2 نقطة. كما أفهم ، تمت كتابة Matlab لاستخدام تحويل فورييه الأكثر كفاءة لتناسب حجم مجموعة البيانات ، وليس فقط قوة 2.

تحرير: أوه ، وفي Matlab يمكنك إنتاج بعض الإثارة يبحث المؤامرات بسهولة شديدة ، وهو أمر مهم عند تقديم بياناتك. مرة أخرى ، بالتأكيد ليس من المستحيل استخدام أدوات أخرى.

أعتقد أنك أجبت على سؤالك الخاص عندما لاحظت أن Matlab "رائع للعمل مع المصفوفات وتخطيط الأشياء". أي تطبيق يتطلب الكثير من الرياضيات المصفوفة والتصور من المحتمل أن يكون أسهل في Matlab.

ومع ذلك ، فإن بناء جملة Matlab يشعر بالحرج ويظهر عمر اللغة. في المقابل ، تعد Python لغة برمجة عامة أجمل للأغراض العامة ، ومع ذلك ، يمكن للمكتبات المناسبة أن تفعل الكثير مما يفعله Matlab. ومع ذلك ، سيكون لدى Matlab دائمًا بناء جملة أكثر إيجازًا من Python لمعالجة المتجهات والمصفوفة.

إذا كان الكثير من البرمجة الخاصة بك ينطوي على هذه الأنواع من التلاعب ، كما هو الحال في معالجة الإشارات وبعض التقنيات الإحصائية ، فإن Matlab سيكون خيارًا أفضل.

ميزة الحركة الأولى. ماتلاب كان موجودًا منذ أواخر السبعينيات. جاءت Python مؤخرًا ، وجعلت المكتبات التي تجعلها مناسبة لمهام نوع Matlab مؤخرًا مؤخرًا. يتم استخدام الناس على Matlab ، لذلك يستخدمونه.

Matlab جيد في عمل العدد. أيضا مصفوفة ومصفوفة التلاعب. إنه يحتوي على العديد من المكتبات المفيدة في المكتبات (يعتمد على الإصدار) ، وأعتقد أنه من الأسهل استخدامه من Python إذا كنت ستحسب المعادلات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top