文档库 最新最全的文档下载
当前位置:文档库 › matlab冒号的用法总结

matlab冒号的用法总结

matlab冒号的用法总结 :
1)a:b 表示[a,a+1,……,b]
>> A=1:5
A =
1 2 3 4
2)当然如果b-a不是整数的话,则向量的最后一位数是n+a,且n=fix(b-a)
>> A=1.2:4.9
A =
1.2000 2.2000 3.2000 4.2000
3)上面的前提是ab则会出现空值
>> A=5:1
A =
Empty matrix: 1-by-0
此时 A是空矩阵,看workspace也可以看到A

4)a:c:b表示[a,a+c,……,a+n*c],其中n=fix((b-a)/c)
>> A=1:3:11
A =
1 4 7 10
5)a:c:b在以下情况为空值
c>0,且ab
>> A=11:3:1
A =
Empty matrix: 1-by-0
6)A(:)表示以一列的方式显示A中所有元素
>> A=[1 2 3;4 5 6]
A =
1 2 3
4 5 6
>> A(:)
ans =
1
4
2
5
3
6
7)b=A(i, :)表示把矩阵A的第i行存入b
>> b=A(1,:)
b =
1 2 3
8)b=A( :,j)表示把矩阵A的第j列存入b
>> b=A(:,1)
b =
1
4
9)b=A(J :K)表示把矩阵A中[A(J),A(J+1),...,A(K)]这些元素存入b中
>> b=A(3:5)
b =
2 5 3
10)b=A(:,c:d)表示把矩阵A的第c到第d列存入b中,当然c,d大于A的列数则出错(b=A(c:d,:)表示取行)
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> b=A(:,2:3)
b =
2 3
5 6
8 9
11) a( :, :,x)产生三维矩阵的第x页






谁能帮我解释下面的代码:
for i=1:5
m( i , : ) = sum( x ( ( i-1 ) * 5 + 1 : ( i - 1 ) * 5 + 5 , : ) );
end


m( i , : ) 这里的冒号以为m矩阵的第一行,所有列的元素,也就m的第一行所有元素;
1 : ( i - 1 ) * 5 + 5 这里的冒号和创建向量时的语句 vector = startValue: increment: endValue是一样的,省略了Increment ,默认为1,和for i=1:5中的冒号也是一个意思。上述表达式的结果就是一个向量:1,2,3,4,5
最后一个在x ( ( i-1 ) * 5 + 1 : ( i - 1 ) * 5 + 5 , : )中的这个冒号意义和第一个一样,x矩阵中的上述行,所有列的元素。
一般matlab中的:操作符就这两个功能。
分析你的代码就是:
i =1 ,m(1, : ) = sum(x(0*5+1:0*5+5, :)) ---> sum(x(1:5, :)) 也就是m第一行、第一列的元素等于 矩阵x的第1-5行,第一列的所有元素之和,第一行、第二列元素等于x的第1-5行,第二列所有元素之和,依次类推……
i=2-5,同样道理,即可。

m( i , : )是m矩阵第i行
sum( x ( ( i-1 ) * 5 + 1 : ( i - 1 ) * 5 + 5 , : ) )是对x矩阵的( i-1 ) * 5 + 1到( i - 1 ) * 5 + 5这一行求和

相关文档