Matlab稀疏矩阵笔记

来源:互联网 发布:代做淘宝店 编辑:程序博客网 时间:2024/06/05 08:36

ismember(A, S, 'rows')
当A和S为矩阵并且列数相同时,当A中的行同时也是S中的行时返回1,否则返回0。 
如果A或S是字符元胞数组时不能用此语法。

 

A = [1 2 4;3 1 3;1 5 2;1 1 9]

A =
     1     2     4
     3     1     3
     1     5     2
     1     1     9

S =[1 2 4;3 1 1;1 3 6;1 1 9]

S =
     1     2     4
     3     1     1
     1     3     6
     1     1     9

[Q B]=ismember(A,S,'rows')
Q =
     1
     0
     0
     1
B =
     1
     0
     0
     4

S =[1 2 4;3 1 3;1 3 6;1 1 9]
S =
     1     2     4
     3     1     3
     1     3     6
     1     1     9

[Q B]=ismember(A,S,'rows')
Q =
     1
     1
     0
     1
B =
     1
     2
     0
     4

A =
     1     2     4
     3     1     3
     1     5     2
     1     1     9
>> S =[1 1 9;1 2 4;3 1 3;1 5 2]
S =
     1     1     9
     1     2     4
     3     1     3
     1     5     2
>> [Q B]=ismember(A,S,'rows')
Q =
     1
     1
     1
     1
B =
     2
     3
     4
     1
>> S =[1 1 9;1 2 4;3 1 3;3 1 3]
S =
     1     1     9
     1     2     4
     3     1     3
     3     1     3
>> [Q B]=ismember(A,S,'rows')
Q =
     1
     1
     0
     1
B =
     2
     4
     0
     1
>> S =[1 1 9;1 1 9;3 1 3;3 1 3]
S =
     1     1     9
     1     1     9
     3     1     3
     3     1     3
>> [Q B]=ismember(A,S,'rows')
Q =
     0
     1
     0
     1
B =
     0
     4
     0
     2
>> A = [1 1 9;1 3 1;1 1 9;1 3 1]
A =
     1     1     9
     1     3     1
     1     1     9
     1     3     1
>> S =[1 1 9;1 1 9;3 1 3;3 1 3]
S =
     1     1     9
     1     1     9
     3     1     3
     3     1     3
>> S =[1 1 9;1 1 9;1 3 1;1 3 1]
S =
     1     1     9
     1     1     9
     1     3     1
     1     3     1
>> [Q B]=ismember(A,S,'rows')
Q =
     1
     1
     1
     1
B =
     2
     4
     2
     4

-----------------------------------------------------------------------------------------------------下方引用百度文库Word文档

  1. 稀疏矩阵定义:
    即其中只有很少非零元素的矩阵,这样的矩阵就成为稀疏矩阵,这种特性提供了矩阵存储空间和计算时间的优点,例如:
    A=[ 0 0 0 5;
        0 2 0 0;
        1 3 0 0;
        0 0 4 0; ];

    Sparse matrix :稀疏矩阵
  2. 稀疏矩阵的转换:
    给出一个矩阵A,我们可以使用MATLAB函数sparse把它转换成稀疏矩阵,该函数语法为:
              S=sparse(A)
    例如:
    >>   A=[ 0 0 0 5;
             0 2 0 0;
             1 3 0 0;
             0 0 4 0; ];
    >>   S=sparse(A)
         S=
             (3,1)  1
             (2,2)  2
             (3,2)  3
             (4,3)  4
             (1,4)  5
    括号内的坐标是元素在矩阵中位置索引,坐标按照元素值排列      
  3. 稀疏矩阵的获得:
    函数sparse()的更常用的用法是用来产生稀疏矩阵,具体语法如下:
                        S=vsparse(r,c,s,m,n)
    其中r和c是我们希望产生的稀疏矩阵的矩阵中非零元素的行和列索引向量。参数s是一个向量,它包含索引对(r,c)对应的数值,m和n是结果矩阵的行维数和列维数。例如:

    >> s=sparse( [3 2 3 4 1 ],[ 1 2 2 3 4 ],[1 2 3 4 5],4,4) 
    s =
       (3,1)        1
       (2,2)        2
       (3,2)        3
       (4,3)        4
       (1,4)        5
    如果要获得完成的矩阵,可以使用full()函数,函数语法:
       A=full(s)
    例如:
    >> a=full(s)
    a =
         0     0     0     5
         0     2     0     0
         1     3     0     0
         0     0     4     0

 


0 0