日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Matlab与C/C++/Java的一些区别

發布時間:2023/12/15 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab与C/C++/Java的一些区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

變量

定義和初始化

C/C++中要先定義變量,如果未初始化,其值一般是不確定的

Java中變量使用前,須初始化或賦值(實例化時,類中的全局變量會自動被初始化為默認值)

Matlab中變量在寫入時不需預先定義,但在讀取時應該已被定義

數組長度

C中數組長度固定,可用malloc函數擴展內存空間,并復制已有值到新開辟的連續內存空間

C++/Java中長度可用new獲取新的內存空間,并復制已有值到新開辟的連續內存空間

Matlab中變量長度、維度在寫入時都可以自動擴展,為了提高性能,最好避免變量緯度自動擴展,而是預先定義空的多維變量,如二維char型數組 a = ['';''];

注意:Matlab變量長度的自動擴展只在寫入變量時發生,讀取變量時則不可訪問越界

例如:對于定義的變量a=[1 2;3 4],賦值語句a(5,5)=1會自動擴展,而b=a(10,10)則會訪問越界出錯

數組的比較

C語言:對于字符串,可用strcmp函數,其他類型,要循環逐個比較

Matlab:字符串可用strcmp函數。維度、長度相同的任意類型數組,可直接用==比較,比較結果也是同樣大小的數組,為1則對應位置的值相等,為0則不等

自增操作

C/C++/Java可用?x++或++x

Matlab只能?x = x+1;

數組下標

C語言:?下標從0開始,用中括號表示。如a[0],二維數組a[0][1]

Matlab:下標從1開始,用小括號表示,如a(1),二維數組a(1, 2)

字符串的表示

C語言中用雙引號"test"

Matlab用單引號 'test'

字符串復制常用方法

// C中不能用等號賦值,等號賦值只是指針的復制

C語言:strcpy(a, b);

// C++中可重載操作符“=”實現等號復制字符串

C++/Java:String b = new String(a);

% Matlab中視情況而定,b=a可以復制整個字符串變量。如果b是二維char型數組,則可用?b(2, 1 : length(a)) = a來復制。b的長度不夠會自動擴展,a的長度不足則會補空格。

Matlab: b = a; ?b(2, 1 : length(a)) = a;

運算符

求余

C語言: a % b

Matlab: ?mod(a, b)

不等于

C語言: !=

Matlab: ~=

循環的寫法

// c語言

for(i = 0; i < n; ++i) { ? // i = 0 ~ n-1

}

% matlab

for i = 1 : n? ? % i = 1 ~ n

end

條件分支結構

// c

if(a==0) {

} else if(a==1) {

} else {

}

% matlab

if a==0

elseif a==1

else

end

函數定義

C語言:函數只能有一個返回值,多個返回值可通過定義結構體、使用指針作為參數傳入函數實現

Matlab:函數可有多個返回值,通過[a b] = func()獲取

代碼優化

Matlab中盡可能多使用矩陣變換運算,而少采用循環的方式

本文首發自我的個人網站,轉載請注明來源:http://www.hainter.com/matlab-c-java

總結

以上是生活随笔為你收集整理的Matlab与C/C++/Java的一些区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。