matlab中sparse和full函数的使用

sparse函数

功能:创建稀疏矩阵

用法1:S=sparse(X)—将矩阵X转化为稀疏矩阵的形式,即矩阵X中任何零元素去除,非零元素及其下标(索引)组成矩阵S。 如果X本身是稀疏的,sparse(X)返回S。

举例如下:

 1 >> a=[1,0,2;0,0,1;0,0,6];
 2 >> a
 3
 4 a =
 5
 6      1     0     2
 7      0     0     1
 8      0     0     6
 9
10 >> b=sparse(a)
11
12 b =
13
14    (1,1)        1
15    (1,3)        2
16    (2,3)        1
17    (3,3)        6

用法2:S = sparse(i,j,s,m,n,nzmax)——由i,j,s三个向量创建一个m*n的稀疏矩阵(上面的B矩阵形式),并且最多含有nzmax个元素。

例如:B=sparse([1,2,3],[1,2,3],[0,1,2],4,4,4)

B =
   (2,2)        1

(3,3)        2

其中i=[1,2,3],稀疏矩阵的行位置;j=[1,2,3],稀疏矩阵的列位置;s=[0,1,2],稀疏矩阵元素值。 其位置为一一对应。

m=4(>=max(i)),n=4(>=max(j)) (注:m和n的值可以在满足条件的范围内任意选取),用于限定稀疏的大小。

nzmax=4(>=max(i or j)),稀疏矩阵最多可以有nzmax个元素。

full函数

功能:把稀疏矩阵转为全矩阵

A=full(X)—把稀疏矩阵X转换为全矩阵存储形式A

例如:矩阵b为上面例子中的结果

1 >> c=full(b)
2
3 c =
4
5      1     0     2
6      0     0     1
7      0     0     6
时间: 2024-10-09 04:00:10

matlab中sparse和full函数的使用的相关文章

Matlab中的随即置乱函数randperm和randsample函数用法对比

Matlab中的randperm和randsample函数用法对比 转载:http://blog.sina.com.cn/s/blog_a4034b280101k4gg.html 构建替代数据的时候,一种常见的思路是打乱原数据的排列次序,通过随机置换原数据的排列次序从而产生和原数据系列统计特征(如均值.方差.分布)一致的随机数据.具体到Matlab中,此思路的实现会涉及到两个命令:randperm和randsample p.s. 相关的重新排序命令还包括: Reordering Algorith

matlab中同一文件定义子函数的方法

在matlab中一个.m文件中可以有多个的子函数,但仅能有一个主函数,并且M文件名必须和主函数相同在一个m文件中通常有两种定义子函数的方法: 1.嵌套定义 myfunc1会和主函数共享变量名.这种情况下,使用相同的变量名,如果不是故意为之,就不合适了.function mainFunc(... a = myfunc1();...function myfunc1()...end end2. 非嵌套定义function mainFunc()...a = myfunc1();...end functi

Matlab中bsxfun和unique函数解析

一.问题来源 来自于一份LSH代码,记录下来. 二.函数解析 2.1 bsxfun bsxfun是一个matlab自版本R2007a来就提供的一个函数,作用是”applies an element-by-element binary operation to arrays a and b, with singleton expansion enabled. 函数用在两个数组间元素逐个计算.比如当我们想对一个矩阵A的每一列或者每一行与同一个长度相等的向量a进行某些操作(比较大小,乘除等)时,我们只

MATLAB中版本和日期函数

本博客中输出版本号和日期的子函数,今天才发现忘记上代码了,这里补上 function banner() %% ------------------------------------------------------------------------ %% Output Info about matlab %fprintf('\n***********************************************************\n'); [v, d] = version;

Matlab中所有自定义的函数

Functions By Category | Alphabetical List Language Fundamentals Entering Commands ans Most recent answer clc Clear Command Window diary Save Command Window text to file format Set display format for output home Send cursor home iskeyword Determine wh

matlab中矩阵求方差函数_____借鉴网上资料

>> a = [    0.0579    0.1389    0.2722    0.4451     0.3529    0.2028    0.1988    0.9318     0.8132    0.1987    0.0153    0.4660     0.0099    0.6038    0.7468    0.4186]; b1 = var(a); % 默认来求b2 = var(a, 0); % 默认的公式(用N-1)c1 = var(a, 1); % 另外的公式(用N)

Matlab中函数定义方法

Matlab自定义函数的六种方法 n1.函数文件+调用函数(命令)文件:需单独定义一个自定义函数的M文件: n2.函数文件+子函数:定义一个具有多个自定义函数的M文件: n3.Inline:无需M文件,直接定义: n4.匿名函数: n5.Syms+subs:无需M文件,直接定义: n6.字符串+subs:无需M文件,直接定义. ------------ 1.函数文件+调用函数文件:定义多个M文件 % 调用函数文件:myfile.m clear clc for t=1:10 y=mylfg(t);

Matlab中处理日期与时间的函数

Matlab用三种格式来表示日期与时间 (1)双精度型日期数字:一个日期型数字代表从公元0年到某一日期的的天数,例如,2008年8月26日夜时0点钟被表示为733646,而这同一天的中午12点就被表示为733646.5,也就是说任何一个时刻都可以用一个双精度型数字表示. (2)不同形式的日期字符串:Matlab定义了28种标准日期格式的字符串. (3)数值型的日期向量:用一个6元数组来表示一个日期时间,例如,[2008 8 26 12 5 0]表示2008年8月26日12点05分0秒:用一个3元

matlab中meshgrid函数的用法

在MATLAB中遇到了meshgrid函数,对其使用方式并不是很熟悉,查阅到资料了解到这个函数的主要用法 这个函数主要就是在划分网格的时候可以进行使用 [X,Y] = meshgrid(xgv,ygv),其中X,Y是大小相等的两个矩阵,xgv,ygv是两个矩阵矢量 X:通过将xgv复制length(ygv)行(严格意义上是length(ygv)-1行)得到Y:首先对ygv进行转置得到ygv',将ygv'复制(length(xgv)-1)次得到.例如 [X,Y] = meshgrid(1:3,10