matlab中冒號的用法

matlab冒號的用法數組

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

問題補充:能解釋下爲何是一,三,五列spa

滿意回答ci

顯示A的第二行與第三行的第1、3、五列。由於矩陣後面若是是圓括號,那麼都表示引用,即矩陣元素的位置,下面是例子get

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裏面,就是第二種意義,表現爲「用冒號隔開數字」。

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

 

 

 

 

 

 

 

 

 

 

 

i=uint8(zeros(X,Y,3));MATLAB語句解析

提問者:freeciny| 懸賞分:10 | 瀏覽次數:1271次

[X,Y]=size(temp);

  i=uint8(zeros(X,Y,3));

  i(:,:,1)=uint8(temp);

  i(:,:,2)=uint8(temp);

  i(:,:,3)=uint8(temp);

 

滿意回答

這句看起來像是讀圖像的RGB

[X,Y]=size(temp); 讀temp的大小(行數和列數)

  i=uint8(zeros(X,Y,3)); 構造一個三維矩陣

  i(:,:,1)=uint8(temp);uint8將類型轉換爲無符號8位數,即256位。與256色一致。

  i(:,:,2)=uint8(temp);

  i(:,:,3)=uint8(temp); 

樓上的,人家那三行是賦操做。你初始化成0不賦也沒用啊。

 

matlab中的語句2.^x中的點是什麼做用?

答:

x.^2點乘表示x中的各個元素平方

x^2表示x向量乘x向量,是個矩陣

2.^x2^x答案應該是同樣的

 

標明:x爲數組

舉個例子:

A=[1 2 3];

B=2.^A

ans

 2 4 8

不加「。」運算不成立

 

matlab以矩陣做爲基本計算單位,所以用普通運算符號(+-*/^鏈接兩個量時要注意矩陣的運算規則。如2^x,表示兩個矩陣做乘方運算就要求一個爲標量,一個爲方陣。而普通運算號前加了「.」就表示兩個矩陣對應的元素間進行普通運算,而不考慮矩陣的運算規則,固然兩個矩陣的尺寸要一致,若是其中一個爲標量彷佛就不存在這個問題

 

.^」這個叫作點乘。是分別乘以矩陣裏面元素的意思。這樣得出的結果也是一個矩陣

相關文章
相關標籤/搜索