矩陣加法運算

2021-10-19 13:05:09 字數 2570 閱讀 9473

將稀疏矩陣a的非零元以行序為主序的順序存於一維陣列v中,並用二維陣列b表示a中的相應元素是否為零元素,例如:

[ 150

0220−

6009

000]

(矩陣a)

\left[ \begin 15 & 0 & 0 & 22 \\ 0 & -6 & 0 & 0 \\ 9 & 0 & 0 & 0 \\ \end \right] \tag

⎣⎡​150

9​0−

60​0

00​2

200​

⎦⎤​(

矩陣a)

可用 v = (15 , 22 , -6 , 9)

和[ 10

0101

0010

00

](矩陣b)

\left[ \begin 1&0&0&1\\ 0&1&0&0\\ 1&0&0&0\\ \end \right] \tag

⎣⎡​101

​010

​000

​100

​⎦⎤​

(矩陣b

)程式設計實現上述表示法的矩陣加法運算。

首先輸入兩個整數n和m,為矩陣維數,然後輸入兩個矩陣的值b1、v1和b2、v2。

輸出矩陣運算結果b、v。

3 41 0 0 1

0 1 0 0

1 0 0 0

15 22 -6 9

0 1 1 0

0 1 1 0

1 0 0 1

3 2 6 2 -5 8

1 1 1 1

0 0 1 0

1 0 0 1

15 3 2 22 4 8

定義矩陣結構體,成員變數包括行數、列數、有效元素個數、單位矩陣、有效元素

#include

#include

#include

#define maxsize 10

//規定矩陣行數和列數最大值

#define error -1

//定義error巨集名

#define ok 1

//定義ok巨集名

typedef

int status;

//重新命名int型別

typedef

struct matrix

matrix;

status creatmatrix (matrix *m ,

int i ,

int j)

;//建立矩陣

status addmatrix (matrix m, matrix n, matrix &q)

;//矩陣加法運算

intmain()

for(r=

0; r)printf

("%d "

,q.data[r]);

//遍歷輸出有效元素

return0;

}status creatmatrix (matrix *m ,

int i ,

int j)

m->data =

(int*)

malloc

(cont*

sizeof

(int))

;if(!m->data)

return error;

printf

("請輸入有效值:\n");

for(r=

0; r)//迴圈輸入有效元素

scanf

("%d"

,&m->data[r]);

m->i = i;

m->j = j;

m->tn = cont;

return ok;

}status addmatrix (matrix m, matrix n, matrix &q)

}for

(p=0

; p)for

(q=0

; qfor(m=

0; m)for

(n=0

; n)else

//如果相加值為0

q.range[m]

[n]=0;

}return ok;

}

編寫**過程注意細節,特別是迴圈編寫

先利用printf函式從主函式開始進行檢查,找到問題所在,再利用除錯,找到具體問題所在

當想要利用函式改變傳入引數的值,需要傳入位址,則可以選擇

1. status creatmatrix ( matrix &m ,

int i ,

int j )

;//呼叫時

creatmatrix ( m , i , j )

;2. status creatmatrix ( matrix *m ,

int i ,

int j )

;//呼叫時

creatmatrix (

&m , i , j )

;

稀疏矩陣加法運算 線性代數 矩陣基本運算

在本文中,我們將介紹矩陣的大部分基本運算,依次是矩陣的加減法 矩陣的標量乘法 矩陣與矩陣的乘法 求轉置矩陣,以及深入了解矩陣的行列式運算。本文將不會涉及逆矩陣 矩陣的秩等概念,將來再 它們。矩陣的加法與減法運算將接收兩個矩陣作為輸入,並輸出乙個新的矩陣。矩陣的加法和減法都是在分量級別上進行的,因此要...

利用Python進行矩陣加法運算 日常記錄

兩個n行n列的矩陣進行加法運算。encoding utf 8 n int input please input the dimense 確定矩陣維度 x y r 給矩陣x賦值 for i in range n for j in range n print x 給矩陣y賦值 for i in rang...

08 矩陣加法

總時間限制 1000ms 記憶體限制 65536kb 描述輸入兩個n行m列的矩陣a和b,輸出它們的和a b。輸入第一行包含兩個整數n和m,表示矩陣的行數和列數。1 n 100,1 m 100。接下來n行,每行m個整數,表示矩陣a的元素。接下來n行,每行m個整數,表示矩陣b的元素。相鄰兩個整數之間用單...