zoukankan      html  css  js  c++  java
  • MATLAB 矩阵操作(一)

    MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。因此,今天就来介绍一下MATLAB有关于矩阵的一些基本运算:

    随机建立一个  6*6 6  的整数矩阵 A A ,执行下面的操作:
    
    (1)将 A 的第一行元素乘以 2,第二行元素乘以 3,…,第 6 行元素乘以 7,形成矩阵 B
    (2)将 A 转换成 4*9 和 12*3 的矩阵
    (3)分别提取 A 的上三角,下三角和对角矩阵
    (4)取矩阵 A 的第 2-5 行和 3-6 列的元素组成新的矩阵
    (5)计算矩阵的每行元素和每列元素的和,求矩阵的 1-范数,2-范数和无穷范数
    (6)找出矩阵 A 中大于 10 的元素的位置,以下标的形式给出。
    (7)通过查阅帮助文件,计算矩阵 A 的特征值和特征向量,并将矩阵 A 对角化。
    (8)将矩阵 A 分别写入到 mat,dat,txt,xlsx 格式的文件中
    

    首先是创建矩阵。创建矩阵的函数有很多

    第一种,元素直输法创建矩阵

    在MATLAB中,创建一个矩阵最简单的方法是使用矩阵构造符号[ ],在[ ]中,使用逗号“,”或空格“ ”分隔矩阵的列,使用分号“;”分隔矩阵的行。

    x=[1,2,3,4;1,2,3,4]
    
    运行结果:
    x =
     1     2     3     4
     1     2     3     4
    

    第二种,利用函数进行创建矩阵

    函数 作用
    randint(x,y,max) 创作一个不大于max的随机正整数的x*y的矩阵
    randi(max,x,y) 创作一个不大于max的随机正整数的x*y的矩阵
    eye() 创造单位矩阵
    ones() 生成全为一的矩阵

    对于接下来的1~8问,给出以下代码来实现其功能。

    clc
    clear
    a=randi(20,6,6)%创建一个6*6且数值均不大于20的随机正整数矩阵
    for i=1:6
        B(i,:)=a(i,:)*(i+1);
    end
    B
    c4_9=reshape(a,4,9)
    c12_3=reshape(a,12,3)
    xl=tril(a)%去除矩阵的下三角行列式,空缺的元素用零来代替
    xr=triu(a)%去除矩阵的上三角行列式,空缺的元素用零来代替
    a25_36=a(2:5,3:6)
    sum_hang=sum(a,2)
    sum_lie=sum(a,1)
    fanshu_1=norm(a,1)%求解矩阵的一范数
    fanshu_2=norm(a,2)%求解矩阵的二范数
    fanshu_inf=norm(a,inf)%求解矩阵的无穷范数
    b=find(a>10);
    [hang lie]=ind2sub(size(a),b);%将数字b转换为矩阵a的坐标
    disp([hang lie]);
    [V D]=eig(a);
    V %V的列是相应的特征向量
    te=eig(a)%特征值
    D %由特征值构成的对角阵
    dlmwrite('a.mat',a)
    dlmwrite('a.dat',a)
    dlmwrite('a.txt',a)
    dlmwrite('a.xlsx',a)
    
  • 相关阅读:
    list1AndCompile
    pickle序列化2
    Servlet简单例子:输出当前日期
    Servlet简单例子:前后端通信
    Java 继承的简单例子
    Java 一个简单的距离工具类
    Java 私有静态成员变量的简单使用
    mysql数据类型
    使用Bootstrap简单案例——导航条+轮播图+模态框+表单
    K-means 聚类
  • 原文地址:https://www.cnblogs.com/mach-pupil/p/12535354.html
Copyright © 2011-2022 走看看