Python语言实现
因为python有专门的软件包,所以用Python实现非常简单。
#导入科学计算包
import numpy as np;
#随机生成一个3 * 4的整型矩阵,元素的最大值为10
data = np.mat(np.random.randint(10, size=(3, 4)))
print(data)
#对矩阵进行转置运算
data2 = data.T
print(data2)
#对矩阵进行乘法运算
data3 = data * data2
print(data3)
C语言实现
// Created by 李印臣 on 2018/11/26.
// Copyright © 2018年 李印臣. All rights reserved.
#include
#include
#include
#define true 1
#define false 0
typedef int bool;
// 定义矩阵结构体。矩阵中的元素用分数表示,方便矩阵运算(尤其是除法和求逆)是比较大小,保留精度。分数由分子、分母两个整数组成。isInt标识用于简化矩阵元素全为整数时的运算。
struct Matrix{
bool isInt;
int ***arr;
};
//初始化矩阵。这里要注意指针的层级关系,并对isInt初始化。y还有一点需要强调:memset的单位是char,如memset(matrix->arr[i][j], 1, n * sizeof(int));,则每一个int值将被设置成00000001000000010000000100000001(16843009)
struct Matrix* initMatrix(int m, int n){
int i = 0, j = 0;
struct Matrix *matrix = NULL;
matrix = (struct Matrix *)malloc(sizeof(struct Matrix));
matrix->arr = (int ***)malloc(sizeof(int **) * 2);
for(i = 0; i < 2; i++){
matrix->arr[i] = (int **)malloc(sizeof(int *) * m);
for(j = 0; j < m; j++){
matrix->arr[i][j] = (int *)malloc(sizeof(int *) * n);