bycj.net
当前位置:首页 >> mAtlAB怎么建立矩阵 >>

mAtlAB怎么建立矩阵

有四种方法建立矩阵:①直接输入法,如 a=[2 5 7 3],优点是输入方法方便简捷;②通过 M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改;③由函数建立,如 y=sin(x),可以由 MATLAB 的内部函数建立一些特殊矩阵;④通过数据文件建立,该方法可以调用由其他软件产生数据.

matlab作为专业的数学计算软件,声明和初始化向量和矩阵非常方便,例如,你可以不用像c语言那样预先new出空间来,二是直接用下表a[2][3]=n1来输入矩阵第二行第三列的元素,这样默认就声明了一个2*3的矩阵,前面的元素默认为0,当然,你可以继续声明a[4][3]=n2,那现在a矩阵就变成了四行三列的矩阵了,也就是动态分配了存储空间.但是,动态分配会影响运行效率(大数据量的情况下,效率损失非常明显,例如进行图像的处理),所以建议还是预先分配存储空间为好.另外的方法,你可以导入txt文档、矩阵编辑器等方式来建立矩阵.

1、向量的创建1)直接输入:行向量:a=[1,2,3,4,5]列向量:a=[1;2;3;4;5]2)用“:”生成向量a=J:K 生成的行向量是a=[J,J+1,…,K]a=J:D:K 生成行向量a=[J,J+D,…,J+m*D],m=fix((K-J)/D)3)函数linspace 用来生成数据按等差形式排列的行向量x=

>> a = repmat((10:10:100)',1,10); a = a-triu(a,1); a = a-tril(a,-1); a = a+tril(ones(10,10),-1) a = 10 0 0 0 0 0 0 0 0 0 1 20 0 0 0 0 0 0 0 0 1 1 30 0 0 0 0 0 0 0 1 1 1 40 0 0 0 0 0 0 1 1 1 1 50 0 0 0 0 0 1 1 1 1 1 60 0 0 0 0 1 1 1 1 1 1 70 0 0 0 1 1 1 1 1 1 1 80 0 0 1 1 1 1 1 1 1 1 90 0 1 1 1 1 1 1 1 1 1 100

kk=1;//用于记抄录相同列的下袭标for i=1:n-1//两个for循环借鉴排序思想for j=i+1:nif(A(:,i)-A(:,j)==0)x(kk,1)=i;x(kk,2)=j;kk=kk+1;endendendx//输出zhidao

clear;a=input('请输入a=')[m n]=size(a)if m~=n disp('a不是方阵')elseif det(a)==0 disp('a不可逆')else c=[a,eye(n)] d=rref(c) v=d(:,n+1:2*n)end

举个例子,希望有所帮助. 代码: clc; clear all; close all;i = [1 2 3 4 5 13 18 20 24 25 31 33 34 35];k1 = i(i<=12)k2 = i(i>12 & i<=24)k3 = i(i>24 & i<=36) 结果: k1 = 1 2 3 4 5 k2 = 13 18 20 24 k3 = 25 31 33 34 35 >>

用diag()函数矩阵对角线元素抽取,来实现.v=[2015 2015 2015 2015 2015 2015 2015 2015 2015]; A1=diag(v,-1);A2=diag(v,1);A1+A2运行结果如下

可以使用元胞数组,如下面的例子:clear allclca=1:5;%a,b为一维数组b=2:4;c=cell(1,2);%c为元胞数组c{1,1}=a;%a为c中的第一个元素c{1,2}=b;

用一个二重循环就行了 rou = 0.5; nt = 10; R = zeros(nt); for i = 1:nt for j = 1:nt R(i,j) = rou^abs(i-j); end end R效果如图

bnds.net | gtbt.net | nmmz.net | knrt.net | qhnw.net | 网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com