二維陣列與矩陣的區別?二維陣列和矩陣的區別

2023-01-29 23:20:04 字數 3196 閱讀 3128

1樓:匿名使用者

二維陣列是程式語言中的叫法,矩陣是數學教材上的教法。

它們之間沒多大區別。如果把有些規定說明一致的話,應該是一樣的。

2樓:夜書生

其實是一樣的。

int **a;

int b[3][3];

a=b;那麼陣列名就是首個元素位址。

a+1就是b[1][0]或者b[1]的位址。

二維陣列和矩陣的區別

3樓:匿名使用者

二維陣列是矩陣的一種實現方式,就是在程式中矩陣是通過二維陣列來存。

三維組和二維陣列的區別是什麼?

4樓:網友

舉例來說。把乙個數當作乙個雞蛋,那麼乙個int型的變數就是乙個雞蛋。現在建立乙個一維陣列int[5]:這個就相當於在你面前放了一排5個雞蛋。

接下來到二維陣列int[3][4]:首先,由二維陣列的第二維[4]我們可以確定一排是4個雞蛋,這個跟剛才的一維陣列一樣。

那麼之前的[3]是什麼呢?於是int[3][4]相當於在你面前放了3排的雞蛋,一排4個。再到三維陣列int[3][4][5]:

第三維的[5]就是之前一位陣列裡的一排5個雞蛋,第二維的[4]就是一共有4排。那麼這個[3]呢?那就是如果把這4排每排5個的雞蛋看成乙個小組,即4*5=20個雞蛋是乙個組,在你面前就放著3組的雞蛋。

matlab 裡陣列和矩陣有什麼區別嗎,我分不清

5樓:匿名使用者

在matlab裡面,矩陣之間。

的算術運算按照線性代數的規則進行。

例子:>>a=[1 2;3 4]

a =1 2

>> b=[1 1;1 1]

b =1 1

>> a*bans =

而陣列之間的運算是專陣列對應元素間進行一屬一計算例子:>>a=[1 2;3 4]

a =1 2

>> b=[1 1;1 1]

b =1 1

>> a.*bans =

另外,要注意陣列與單元陣列、結構陣列的區別與聯絡。

6樓:紫冰雨的季節

一維數bai組相當於向量,二維數du組相當於zhi矩陣。所以矩陣是陣列dao的子集。

陣列運算。版是指數組對權應元素之間的運算,也稱點運算。矩陣的乘法、乘方和除法有特殊的數學含義,並不是陣列對應元素的運算,所以陣列乘法、乘方和除法的運算子前特別加了乙個點。

矩陣是乙個二維陣列,所以矩陣的加、減、數乘等運算與陣列運算是一致的。但有兩點要注意:

(1)對於乘法、乘方和除法等三種運算,矩陣運算與陣列運算的運算子及含義都不同:矩陣運算按線性變換定義,使用通常符號;陣列運算按對應元素運算定義,使用點運算子;

(2)數與矩陣加減、矩陣除法在數學是沒有意義的,在matlab中為簡便起見,定義了這兩類運算。

7樓:匿名使用者

本質上來講,陣列是個1*n維的矩陣。

請問,什麼叫一維陣列和二維陣列呢?

8樓:匿名使用者

這好象是組合語言的問題吧。

舉個例子吧。

#include ""

#include

int main(),b[10]; 為什麼這裡要定義為二維陣列,用一維陣列怎麼不可以?

int i;

strcpy (b,a[0]);

for (i = 1;i < 5;i++)

if (strcmp (b,a[i])>0)

strcpy (b,a[i]);

cout}int a[10]這類數字上的陣列我想應該比較好理解吧,難理解的是char a[10]這類字元上的陣列,我就拿你上面的程式來說。

首先,在你的二維陣列裡面的是字串,先舉乙個簡單的例子:

char a[10]=

形象地表達就是。

china\0\0\0\0\0

為什麼呢?因為在記憶體中存放時,系統會自動在最後乙個字元a後面加結束字元\0,那麼在輸出時,遇到結束字元\0就會結束。

所以如果在你上述的程式中,把二維陣列改成一維陣列的話,從理論上說,他只能輸出第乙個字元book。(當然,在上述程式中,這樣改會出錯,至於為什麼,我能力有限,不會解釋)

所以,以上的a[10]在記憶體中形象的表達出他的存放情況就是:

book\0\0\0\0\0\0

basic\0\0\0\0\0

(下略)你在定義a[10]時,沒有限定行數,系統會自動把你輸入的字串個數作為行數,而列數是10,所以會在book後補上6個\0,在basic後補上5個\0 。

執行程式時,系統先檢查第一行,遇到\0停止對這一行的檢查,跳到第二行,遇到\0再次結束對第二行的檢查,跳到下一行。

這樣,系統就可以把每乙個字串都作檢查,從而輸出符合程式的字串!

其實,簡單地說,就是用乙個語句,把幾個一維陣列串起來一起定義和初始化罷了。

c語言 二維陣列a【0】與a與a【0】【0】有什麼區別?

9樓:匿名使用者

陣列在記憶體中是連續按行分布的,對於a[2][3]=,它在記憶體中的分布式1,2,3,4,5,6;所以他等價於a[2][3]=;在c/c++中,陣列名也即是陣列首位址,這裡加入a=0x1000;那麼它的位址分就是也就取第乙個元素的位址,即1000,a[0]是第一行1000,1004,1008的首位址,也是1000,也即是a元素的首位址;

int *b=a[0];

*b和a[0]是等的,是a陣列第一行首位址;不同的是a[0]是唯讀的,*b是可讀寫的因為b是指標變數,你可以試試a[0][3],a[0][4],a[0][5]都能列印出來,別看a[2][3]以為這樣越界了,其實越不越界是按位址來算的,位址上講,&a[0][3]=a[1],所以完全沒問題;按照位址計算上面列印的值就是4,5,6;同理用*(b+3),*b+4),*b+5)也是一樣的道理;

a就是陣列的首位址,a[0]是第一行第乙個元素的首位址,也即是a的首位址,&a[0]是第一行的首位址,從數值上將,沒問題,只是資料型別上不一樣;

a[0][0]就是取第一行第乙個元素的值,也即是1

矩陣乘(*)和陣列乘(.*)有何不同

c 二維陣列排序問題,C 二維陣列sort函式排序問題

include 寫的比較簡單,原理你應該都知道了,後面的,就是 開始做的那個沒刪 void main for i 0 i 12 i 冒泡 for j 0 j 12 j if a j 4 j 4 a j 1 4 j 1 4 看起來有點複雜,其實就是 12個數分成3行4列,對應的行數就是j 4,列數j ...

關於c語言二維陣列的問題,C語言中二維陣列的定義問題

a是乙個一維陣列,陣列裡的值是指標,指向的還是一維陣列。即等價於,int x 2 2,0 int y 2 4,8 int a 2 x,y 我想你應該知道答案了。c語言中二維陣列的定義問題 正確寫法如下 char fd jgf1 maxitemlen 1 說明 把null去掉 1.二維陣列的第乙個維度...

一維陣列,二維陣列和多維陣列都是線性結構嗎

在記憶體中 都是連續的記憶體空間 一維陣列,肯定是線性結構,沒有疑問 2維 其實更應該把她理解為乙個面吧 就是多條線 只是記憶體是連續的 多維,記憶體也是連續的 可以理解為 多個面 二維陣列是非線性結構 陣列是線性結構嗎 陣列的含義大了,二維陣列三維陣列n維陣列都是陣列,肯定不都是線性結構。如果你認...