1. 程式人生 > >matlab中冒號的用法

matlab中冒號的用法

matlab冒號的用法

對於A(四行五列)矩陣,A(2:3,1:2:5)是什麼意思?

問題補充:能解釋下為什麼是一,三,五列

滿意回答

顯示A的第二行與第三行的第一、三、五列。因為矩陣後面如果是圓括號,那麼都表示引用,即矩陣元素的位置,下面是例子

A =

     1     2     3     4     5

     4     5     6     7     8

     0     1     4     7     8

     0     2     5     8     7

disp(A(2:3,1:2:5)) %3個數字夾著2個冒號的意思:從num1到num3 步長num2

 4     6     8

 0     4     8 

補充問題:能解釋下為什麼是一,三,五列

MATLAB定義矩陣的一種方法是A=s:d:f,s表示起始,d表示增量,f表示終點,1:2:5即為1,1+2=3,3+2=5,不難理解吧,是MATLAB定義矩陣最常用的方法

請問matlabA(k,:) 中的冒號什麼意思?

A(k,:)冒號是取出第k行的資料,比如

A =

     1     2

     3     4

     5     6

>> A(1,:)

ans =

     1     2

>>

請高手指教:matlab

中 迴圈語句中X(8,:,i)裡的冒號是什麼意思??

答:冒號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

表示的是i0開始,每次增長2,一直到10,所以迴圈的第一次i=0,第二次迴圈i=2,...6i10,迴圈結束。相當於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裡面,就是第二種意義,表現為“用冒號隔開數字”。

寫在矩陣的括號裡面,就是第一種意義,表現為“把冒號當數字使用,用逗號隔開數字(或冒號)”。