RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MATLAB和c語言的區(qū)別分析對比

GReq_mcu168 ? 2018-01-08 08:31 ? 次閱讀

MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。MATLAB和MathemaTIca、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計(jì)與分析等領(lǐng)域。

MATLAB功能特性:

數(shù)值分析

數(shù)值和符號計(jì)算

工程與科學(xué)繪圖

控制系統(tǒng)的設(shè)計(jì)與仿真

數(shù)字圖像處理

數(shù)字信號處理

通訊系統(tǒng)設(shè)計(jì)與仿真

財(cái)務(wù)與金融工程

MATLAB應(yīng)用:

MATLAB產(chǎn)品族可以用來進(jìn)行以下各種工作:

●數(shù)值分析

●數(shù)值和符號計(jì)算

●工程與科學(xué)繪圖

●控制系統(tǒng)的設(shè)計(jì)與仿真

●數(shù)字圖像處理技術(shù)

●數(shù)字信號處理技術(shù)MATLAB在通訊系統(tǒng)設(shè)計(jì)與仿真的應(yīng)用

●通訊系統(tǒng)設(shè)計(jì)與仿真

●財(cái)務(wù)與金融工程

●管理與調(diào)度優(yōu)化計(jì)算(運(yùn)籌學(xué))

MATLAB的應(yīng)用范圍非常廣,包括信號和圖像處理、通訊、控制系統(tǒng)設(shè)計(jì)、測試和測量、財(cái)務(wù)建模和分析以及計(jì)算生物學(xué)等眾多應(yīng)用領(lǐng)域。附加的工具箱(單獨(dú)提供的專用MATLAB函數(shù)集)擴(kuò)展了MATLAB 環(huán)境,以解決這些應(yīng)用領(lǐng)域內(nèi)特定類型的問題。

二、C語言簡介

C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。

C語言基本特性:

1、高級語言:它是把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來的工作單元

2、結(jié)構(gòu)式語言:結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。

3、代碼級別的跨平臺:由于標(biāo)準(zhǔn)的存在,使得幾乎同樣的C代碼可用于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。C語言對編寫需要進(jìn)行硬件操作的場合,優(yōu)于其它高級語言。

4、使用指針:可以直接進(jìn)行靠近硬件的操作,但是C的指針操作不做保護(hù),也給它帶來了很多不安全的因素。C++在這方面做了改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性,受到了一些用戶的支持,但是,由于這些改進(jìn)增加語言的復(fù)雜度,也為另一部分所詬病。Java則吸取了C++的教訓(xùn),取消了指針操作,也取消了C++改進(jìn)中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機(jī)中運(yùn)行,運(yùn)行效率低于C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據(jù)著程序使用榜的前三名。

特有特點(diǎn):

C語言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域(variable scope)以及遞歸功能的過程式語言。

C語言傳遞參數(shù)均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。

不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起。

只有32個(gè)保留字(reserved keywords),使變量、函數(shù)命名有更多彈性。

部份的變量類型可以轉(zhuǎn)換,例如整型和字符型變量。

通過指針(pointer),C語言可以容易的對存儲器進(jìn)行低級控制。

預(yù)編譯處理(preprocessor)讓C語言的編譯更具有彈性。

三、MATLAB語言與C語言的區(qū)別

MatLab的底層是C寫的,C的效率比MatLab要高,但MatLab語法簡單多了,而且簡單,但執(zhí)行效率不高 MATLAB是用于特定的方面的,比如說矩陣運(yùn)算方面、DSP就很有優(yōu)勢,而C語言不同,很多軟件的底層都是C編寫的matlab提供的是一種基于解釋的語言,雖然也是一種高級語言,但是還是很簡單的,它的目標(biāo)在于用戶方便,開發(fā)簡單。而實(shí)際上這些方便也是有代價(jià)的,編譯器承受了這些代價(jià),程序執(zhí)行效率方面也有損失。另一方面matlab這么做也是基于其專用于科學(xué)計(jì)算的目的來考慮的,無法應(yīng)用于通用的程序設(shè)計(jì)。c語言這么做保持了其編譯的速度,便于大型程序設(shè)計(jì),執(zhí)行效率也很高,如os等百萬行以上的代碼。同時(shí)c語言來做很多計(jì)算以外的應(yīng)用環(huán)境,如邏輯判斷,I/o操作等嵌入式應(yīng)用,如matlab編譯器。。。 顯然基于向量的計(jì)算優(yōu)化,對于這些應(yīng)用反而是負(fù)擔(dān)。當(dāng)然還有別的原因,我暫時(shí)還想不完整,但是這些已經(jīng)足夠說明了兩者的不同啦。一句話,應(yīng)用的范圍、目的不同,語言的設(shè)計(jì)也當(dāng)然風(fēng)格迥異了。

matlab是一種解釋性語言,集成化,專門用于和數(shù)學(xué)相關(guān)的工程計(jì)算,數(shù)值運(yùn)算matlab是很簡便強(qiáng)大,用起來很方便,比如: 求數(shù)組A的最大值的程序如下: A=[1 2 3 4 5 6];%把值賦給A max(A)%求最大值 結(jié)果就出來了 而C語言就麻煩的多 C語言是面向?qū)ο蟮幕A(chǔ)語言。更多的用于底層函數(shù)開發(fā),軟件開發(fā),單片機(jī)控制等,matlab能做的C語言肯定能做,但是一般要麻煩的多,而C語言能做的matlab不一定能做。 形式上最容易發(fā)現(xiàn)的區(qū)別是,matlab是一句一句編譯的,而c語言是對一個(gè)完整的代碼段進(jìn)行編譯的,并且c中有頭文件(#include(。。。)),而matlab中沒有,對于數(shù)值運(yùn)算matlab是很簡便強(qiáng)大的,c就有點(diǎn)繁瑣,對于算法要求c相對更高點(diǎn)。

matlab主要優(yōu)勢是集成了強(qiáng)大的數(shù)學(xué)計(jì)算功能,對大規(guī)模數(shù)據(jù)的計(jì)算精度和效率可以保證。matlab中集成了很多數(shù)學(xué)計(jì)算函數(shù),能很方便的調(diào)用,而c語言,你一定知道,任何一個(gè)算法都需要自己設(shè)計(jì),并調(diào)試,以保證程序能正確執(zhí)行。

matlab優(yōu)勢在于大規(guī)模矩陣運(yùn)算,解常微分、偏微分方程,包括圖像識別,人工智能,濾波等等,可以說,matlab是一個(gè)專業(yè)的數(shù)學(xué)軟件,一個(gè)高效的專業(yè)工具。 一句話概括,matlab集成了很多數(shù)學(xué)計(jì)算功能,專注于數(shù)學(xué)計(jì)算領(lǐng)域,而c語言,是一個(gè)更大眾化的程序平臺。

matlab是解釋型腳本,c語言是編譯執(zhí)行的語言,簡單說matlab的解釋程序是看一句代碼執(zhí)行一次,而C語言的編譯器必須編譯好源文件生成目標(biāo)代碼,再執(zhí)行整個(gè)目標(biāo)代碼。 matlab底層是C/C++實(shí)現(xiàn)的。.m文件可以使用matlab內(nèi)置的mcc命令編譯成exe文件。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    185

    文章

    2974

    瀏覽量

    230380
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136683

原文標(biāo)題:matlab和c語言的區(qū)別

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    matlabc語言區(qū)別

    、財(cái)務(wù)建模和分析以及計(jì)算生物學(xué)等眾多應(yīng)用領(lǐng)域。附加的工具箱(單獨(dú)提供的專用MATLAB函數(shù)集)擴(kuò)展了MATLAB 環(huán)境,以解決這些應(yīng)用領(lǐng)域內(nèi)特定類型的問題。二、C
    發(fā)表于 01-07 15:07

    Matlab與R語言區(qū)別

    建模設(shè)計(jì)與分析等領(lǐng)域。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等
    發(fā)表于 05-03 10:18

    MATLAB語言C語言區(qū)別

    ,軟件開發(fā),單片機(jī)控制等。MATLAB能做的C語言肯定能做,但是一般要麻煩的多,而C語言能做的MATLA
    發(fā)表于 11-30 16:19

    MATLAB語言在異步電機(jī)仿真分析中的應(yīng)用

    本文應(yīng)用MATLAB/Simulink 模塊庫或直接應(yīng)用MATLAB 語句進(jìn)行軟件編程,對異步電機(jī)的穩(wěn)態(tài)及動態(tài)特性進(jìn)行了仿真分析,表明MATLAB
    發(fā)表于 09-02 10:35 ?81次下載

    MatlabC語言的應(yīng)用接口程序

    MatlabC語言的應(yīng)用接口程序 、理解幾個(gè)常用的socket函數(shù) #include #includeint socket(int domain,int type,int portocol);
    發(fā)表于 06-18 14:51 ?906次閱讀

    C語言MATLAB接口編程與實(shí)例

    本書以簡潔的語言、豐富的實(shí)例系統(tǒng)地介紹了C語言MATLAB 接口函數(shù)(稱之為:C-MEX函數(shù))的編程方法。用實(shí)例詳細(xì)地介紹了
    發(fā)表于 08-08 11:23 ?0次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>與<b class='flag-5'>MATLAB</b>接口編程與實(shí)例

    C語言MATLAB接口_編程與實(shí)例_李傳軍編著

    C語言MATLAB接口,好看的MATLab書籍。
    發(fā)表于 02-19 15:46 ?2次下載

    matlabc語言區(qū)別

      matlabc語言目前已經(jīng)得到廣泛的運(yùn)用,但是在生活當(dāng)中人們?nèi)菀装褍烧吲煜?,今天我們就來看看它們兩者之間的區(qū)別。
    發(fā)表于 11-20 16:05 ?3.4w次閱讀

    r語言matlab有什么區(qū)別

    做數(shù)據(jù)分析、科學(xué)計(jì)算等離不開工具、語言的使用,目前最流行的數(shù)據(jù)語言,無非是MATLAB,R語言,Python這三種
    發(fā)表于 01-05 15:56 ?4.6w次閱讀

    C51單片機(jī)C語言與標(biāo)準(zhǔn)C語言有什么區(qū)別?

    一:C51(單片機(jī)C語言)與標(biāo)準(zhǔn)C語言區(qū)別1、 C
    發(fā)表于 10-09 08:00 ?134次下載
    <b class='flag-5'>C</b>51單片機(jī)<b class='flag-5'>C</b><b class='flag-5'>語言</b>與標(biāo)準(zhǔn)<b class='flag-5'>C</b><b class='flag-5'>語言</b>有什么<b class='flag-5'>區(qū)別</b>?

    MATLAB語言C語言區(qū)別資料下載

    電子發(fā)燒友網(wǎng)為你提供MATLAB語言C語言區(qū)別資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)
    發(fā)表于 04-01 08:40 ?8次下載
    <b class='flag-5'>MATLAB</b><b class='flag-5'>語言</b>與<b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>區(qū)別</b>資料下載

    標(biāo)準(zhǔn)c語言與嵌入式,嵌入式C語言C語言區(qū)別

    嵌入式C語言C語言區(qū)別:最常用的系統(tǒng)編程語言C
    發(fā)表于 10-20 14:06 ?6次下載
    標(biāo)準(zhǔn)<b class='flag-5'>c</b><b class='flag-5'>語言</b>與嵌入式,嵌入式<b class='flag-5'>C</b><b class='flag-5'>語言</b>與<b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>區(qū)別</b>

    vb語言c++語言區(qū)別

    VB語言C++語言是兩種不同的編程語言,雖然它們都屬于高級編程語言,但在設(shè)計(jì)和用途上有很多區(qū)別
    的頭像 發(fā)表于 02-01 10:20 ?2252次閱讀

    PLC編程語言C語言區(qū)別

    在工業(yè)自動化和計(jì)算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。盡管兩者都是編程語言,但它們在多個(gè)方面存在顯著的區(qū)別
    的頭像 發(fā)表于 06-14 17:11 ?2770次閱讀

    C語言與Java語言對比

    C語言和Java語言都是當(dāng)前編程領(lǐng)域中的重要成員,它們各自具有獨(dú)特的優(yōu)勢和特點(diǎn),適用于不同的應(yīng)用場景。以下將從語法特性、內(nèi)存管理、跨平臺性、性能、應(yīng)用領(lǐng)域等多個(gè)方面對C
    的頭像 發(fā)表于 10-29 17:31 ?315次閱讀
    RM新时代网站-首页