当前位置: 代码迷 >> 综合 >> MAtTLAB 程序函数认识(xlsread、A(:)、unique()、Isnumber、sum())
  详细解决方案

MAtTLAB 程序函数认识(xlsread、A(:)、unique()、Isnumber、sum())

热度:81   发布时间:2023-12-16 08:41:35.0

一、xlsread是读取excel文件的函数

格式:num = xlsread(filename)

例如: xlsread('相互作用关系.xls');这个相互作用关系.xls文件存在当前的MATLAB文件夹路径下。

num = xlsread(filename, sheet);%选择所在的sheet,比如说'sheet1'。

num=xlsread(filename,-1);%表示用户可以用鼠标来选择

num=xlsread(filename,range);例如range='A1,A8',会返回一定范围的数据

num=xlsread(filename,sheet,range);%同时对表和范围的限制

[num,text]=xlsread(filename);%把数据和文本分开

[num,text,raw]=xlsread(filename);%把num,text保存在row形成一个单一的变量中

二、A(:)相当于全部转成列

A = rand(2,3);

>> A=rand(2,3)

A =

    0.8147    0.1270    0.6324
    0.9058    0.9134    0.0975

>> B=A(:)

B =

    0.8147
    0.9058
    0.1270
    0.9134
    0.6324
    0.0975

三、unique()

unique从表面意思上就可以知道是独一无二的意思

1、b = unique(A)  返回的是和A中一样的值,但是没有重复元素。产生的结果向量按升序排序。A可以是一个字符串的单元阵列。

A=ones(3)A =1     1     11     1     11     1     1>> b=unique(A)b =1

2、b = unique(A,'rows')  返回的是A中的唯一的行数。

3、[b,m,n] = unique(...)  也返回索引向量m和n,使得B = A(M)和A= B(N)。m的每一个元素是最大的下标,使得B = A(M)。对于行的组合,B = A(M,:)和A= B(N,:)。

四、ismember

1、ismember(a,b);//判断矩阵的a的元素是否存在b中

例如:

a=[1 2 3 4 5 ];
b=[2 3 4 5 6 ];
>> ismember(a,b)ans =1×5 logical 数组0   1   1   1   1

2、[la,lc]=ismember(a,b);//其中la为表示a的元素是否存在b中,lc表示表示存在的位置

例如:

 a=[1 2 3 4 5 ];
b=[2 3 4 5 6 ];
[la,lc]=ismember(a,b)la =1×5 logical 数组0   1   1   1   1lc =0     1     2     3     4

五、sum函数

对于sum函数就是相应的求和的功能

1 、对于单个向量进行处理

如果需要处理的数据是单个向量的话,就是把向量的每一个元素相加求和

a=[1 2 3 4 5];
>> sum(a)ans =15

2、对于矩阵处理

  sum(x(:));%是对于矩阵x进行整体求和(就是把所有元素累加)

x=[1 2 3;4 5 6;7 8 9]x =1     2     34     5     67     8     9>>  sum(x(:))ans =45

b=sum(x,dim);当dim为1时对矩阵x进行列求和,返回一个行向量,当dim为2时对矩阵x进行行求和,返回一个列向量)

b=sum(x,1);%就是对列进行求和,返回的结果是一个行向量

x=[1 2 3;4 5 6;7 8 9]x =1     2     34     5     67     8     9
b=sum(x,1)b =12    15    18

b=sum(x,2);对于行进行求和(就是一行的所有的元素加起来得到一个数,然后把所有的元素组合成一个列向量)

x=[1 2 3;4 5 6;7 8 9]x =1     2     34     5     67     8     9b=sum(x,2)b =61524

b=sum(x,type);%可以将输入数据与输出数据的类型进行统一

b=sum(x,'native')

x=[1 2 3 ;4 5 6 ;7 8 9];
>> whosName      Size            Bytes  Class     Attributesx         3x3                72  double              >> x=int8(x);
>> b=sum(x,'native')b =1×3 int8 行向量12   15   18>> whosName      Size            Bytes  Class    Attributesb         1x3                 3  int8               x         3x3                 9  int8               

b=sum(x(1:2),1);%对矩阵x进行前两行相加求和,返回一个行向量

 x=[1 2 3;4 5 6;7 8 9];
>> b=sum(x(1:2,:),1)b =5     7     9

b=sum(x(:,1:2),2);%对矩阵x进行前两列求和,返回一个列向量

b=sum(x(:,1:2),2)b =3915

b=sum(diag(x));%对矩阵x进行对角线求和

xx =1     2     34     5     67     8     9>> b=sum(diag(x))b =15

 

 

  相关解决方案