请高手指教:matlab中 循环语句中X(8,:,i)里的冒号是什么意思??

 我来答
xiongxionghy
2011-07-08 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1753
采纳率:75%
帮助的人:2945万
展开全部
冒号在MATLAB里基本上两种意思:
(1)对于矩阵,冒号表示该维度上的所有元素。
A=
1 2 3
4 5 6
7 8 9

A(1,:)表示A的第一行,所有列。
A(1,:)=[ 1 2 3 ]

(2)在循环语句中,冒号表示“从什么开始,间隔多少,到什么”
for i=0 : 2 :10
表示的是i从0开始,每次增长2,一直到10,所以循环的第一次i=0,第二次循环i=2,...第6次i为10,循环结束。相当于C语言中的 for (i=0;i<=10;i=i+2)
追问
首先感谢您的回答,我也从您说的第二点考虑过。可我还是不太明白这里冒号的位置刚好是在“间隔量”的位置上。。。。是代表什么意思呢??
i 是之前已经定好的循环步数。x也是定义好的0矩阵, x=zeros(17,1,samples)
for i=2:1:samples
....
v=v(i)+(x(8,:,i)*v(i));

难道说是代表任何步长??
追答
不是的。这里的冒号是我说的第一个意思。
现在你的x是一个三维矩阵,你可以理解为x是一个长方体,长宽高分别是17,1,sample,然后每个1*1*1的小立方体里面,存放着矩阵的一个元素。见图。
那x(8,:,i)就是取出这个长方体的长里面的第8小格,宽里面的所有小格,高里面的第i小格所对应的那些元素。而由于你的宽里面总共就只有1。所以此处不是“那些元素”而是“那个元素”,只有1个!
可想而知,如果宽的总数不是1,那么取出的将是这个长方体的一个细长条,往里延伸的,想象一下.
************************************
冒号的两种用法其实很好区分,写在for里面,就是第二种意义,表现为“用冒号隔开数字”。
写在矩阵的括号里面,就是第一种意义,表现为“把冒号当数字使用,用逗号隔开数字(或冒号)”。
门得我3
2011-07-08
知道答主
回答量:35
采纳率:0%
帮助的人:20.6万
展开全部
比如说x为矩阵[1 2 3; 2 3 4]
那么x(2,:)就表示矩阵第一行所有数据即[2 3 4]
也可以写成x(2,1:3)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式