matlab matlab 提取矩阵元素素按列储存A(3)

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
A(3) ans =
& & 2 显然,序号(Index)与下标(Subscript )是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。',
blogAbstract:'在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如\x0BA=[1,2,3;4,5,6];\x0BA(3)\x0Bans =\x0B & & 2\x0B显然,序号(Index)与下标(Subscript )是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。',
blogTag:'',
blogUrl:'blog/static/7',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:7,
permalink:'blog/static/7',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}只需一步,快速开始
扫一扫,访问微社区
查看: 10258|回复: 5|关注: 0
MATLAB的矩阵有两种存储方式
<h1 style="color:# 麦片财富积分
新手, 积分 30, 距离下一级还需 20 积分
关注者: 1
MATLAB的矩阵有两种存储方式,完全存储方式和稀疏存储方式
一.完全存储方式
将矩阵的全部元素按列存储,矩阵中的全部零元素也存储到矩阵中。如下图:
无标题.jpg (35.89 KB, 下载次数: 14)
13:51 上传
二.稀疏存储方式
仅存储矩阵所有的非零元素的值及其位置,即行号和列号,显然这对于具有大量零元素的稀疏矩阵来说是十分有效的。
& && &1 0 0 0
A= 0 5 0 0
& && &2 0 0 7
是具有稀疏矩阵特征的矩阵,其完全存储方式是按列存储的全部12个元素
1,0,2,0,5,0,0,0,0,0,0,7
其稀疏存储方式如下:
(1,1),1,(3,1),2,(2,2),5,(3,4),7
括号内为元素的行列位置,后面为元素值。
当矩阵非常的“稀疏”时,会有效的节省存储空间。如下图:
无标题.jpg (35.89 KB, 下载次数: 0)
13:51 上传
三、稀疏存储向完全存储方式的转变
命令:Y=full(X)
四、完全存储方式向稀疏矩阵存储方式的转变
命令:Y=sparse(X)
五、稀疏存储方式的产生
1.将完全存储方式转化为稀疏存储方式
A=sparse(S);将S矩阵转换为稀疏矩阵A;
sparse(m,n);产生m*n的所有元素都为0的稀疏矩阵
sparse(u,v,S);S为建立系数矩阵的非零元素,u(i),v(i)分别为S(i)的行和列下标,S,u,v为等长向量。
[u,v,S]=find(A);返回矩阵A中非零元素的下标和元素,返回值可以作为sparse(u,v,S);的参数
X=[2,0,0,0,0;0,0,0,0,0;0,0,0,5,0;0,1,0,0,-1;0,0,0,0,-5]
A=sparse(X)
& &&&(1,1)& & 2
& &&&(4,2)& & 1
& &&&(3,4)& & 5
& &&&(4,5)& & -1
& &&&(5,5)& & -5
A就是X的稀疏存储方式。
2.产生稀疏存储矩阵
sparse可以讲完全存储方式转换为稀疏存储方式,那么,当使用稀疏矩阵时,要先产生完全存储方式的矩阵,然后再转换,这显然是不可取的,MATLAB有自己产生稀疏矩阵的函数spconvert:
B=spconvert(A);A为一个m*3或m*4的矩阵,A的每一列的意义分别为:
(i,1)第i非零元素所在行
(i,2)第i非零元素所在列
(i,3)第i非零元素的实部
(i,4)第i非零元素的虚部
3.带状稀疏存储矩阵
举个例子:
是一个具有稀疏性质的带状矩阵。
首先,找出矩阵的特征数据:
B为三条对角线元素,d为对角线号,-3为主对角线下第三条,0为主对角线,3为主对角线上第三条。
可以利用spdiags产生稀疏矩阵
A=spdiags(B,d,5,6);
也就是spdiags的调用格式
A=spdiags(B,d,m,n);
B为r*p阶矩阵,r=min(m,n),p为原带状矩阵中所有非零对角线的条数,B的第i列即为原带状矩阵的第i条非零对角线。
spdiags的其他调用格式:
[B.d]=spdiags(A);从原带状矩阵提取全部对角线元素赋给B并把对角线位置赋给d;
B=spdiags(A,d);从带状矩阵中提取由d指定的非零对角线元素构成的矩阵;
E=spdiags(B,d,A);将A中d指定的对角线元素由B代替构成新矩阵E。
4.单位矩阵的稀疏矩阵
speye(m,n);产生m*n的稀疏存储单位阵。
&& A = [0 1 0; 2 0 0; 1 0 1]
&& B = sparse(A)
&& C = find(B)
<h1 style="color:# 麦片财富积分
关注者: 1
原帖由 jihai1984 于
13:51 发表
MATLAB的矩阵有两种存储方式,完全存储方式和稀疏存储方式
一.完全存储方式
将矩阵的全部元素按列存储,矩阵中的全部零元素也存储到矩阵中。如下图:
二.稀疏存储方式
仅存储矩阵所有的非零元素的值及其位置,即行号和 ...
上面完全方式的向量存储方式照片上传错了,现在贴出如下:
无标题.jpg (78.7 KB, 下载次数: 0)
10:42 上传
<h1 style="color:# 麦片财富积分
谢谢,正在这方面迷惑呢!
<h1 style="color:# 麦片财富积分
:(:(:(:(:(:(:(:(
<h1 style="color:# 麦片财富积分
:victory::victory::victory::victory::victory:
<h1 style="color:# 麦片财富积分
这么好的帖子,支持一下,只是有些图片似乎不能正确显示了。
站长推荐 /4
筑起功能安全的堡垒 - 基于模型设计的软件开发
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区MATLAB如何给矩阵按列赋值~_百度知道
MATLAB如何给矩阵按列赋值~
我有更好的答案
举个例子,比如一个10*10的矩阵,从第三行第二列到第9行第8列的一块数据赋某个值:&& a=rand(10,10);&& a(3:9,2:8)=10
采纳率:92%
来自团队:
A(:,i)=[x x x x x ... x];x代表要赋的值
本回答被提问者采纳
matlab中是列优先赋值的
为您推荐:
其他类似问题
matlab的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。MATLAB 矩阵赋值问题 a=[1,2,3,4……](n个元素)_百度知道
MATLAB 矩阵赋值问题 a=[1,2,3,4……](n个元素)
怎样赋值b使得: b=[1,1,1,1,…… 2,2,2,2,…… 3,3,3 ,……
……]即第i行为a的第i个元素b为N*M矩阵
我有更好的答案
x=rot90(a,3);N = 4;b=[];for i = 1:N
b=[b x];end这里N是b的列数,b的行数就等于a的个数,就不用再另外定义了吧。
请问x是什么。。?
x是一个中间数,第一句的意思是把a翻转成一个竖直排列的数组。你要觉得碍眼,把x都替换为a也行。
采纳率:90%
为您推荐:
其他类似问题
您可能关注的内容
matlab的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 matlab 矩阵元素个数 的文章

 

随机推荐