2012-08-08 43 views
1

我已經被告知我們需要知道什麼聲明,這裏是我對他們所做事情的回答。如果我在某個地方弄錯了,請糾正我的錯誤,並告訴我如何學習我可能需要的更高級的陳述,例如.*.^爲元素方面的操作,我還沒有學習。如何學習這些matlab語句?

% Mini-Matlab: 
% ============= 
% 
% Find out what these statements do! 
% Then you can write a Matlab-program. 

% "%" starts a Matlab comment 

x=[2 3] 

上面就像一個數組,一個駐留在語句後的內存中的向量。

y=[4 5]'

這是一個列向量。

A=[x; y']

分號一個矩陣的行分開。

B=sin(A)

這就像一個普通的數學函數。

z=x.*y'

這也是一樣的經典數學/ CS的功能。

c=A\y

這一點很重要,解決了一個方程組但?原始公式如何陳述?上述解決方案Ay = c?請明確說明。

a='Hej'

上面的僅僅是一個可變像任何其他計算機語言。

一個(2)=該載體的字符串 'A' 的 'A'

上面設置第二元件。

v=3:2:9

上述構建體中從3載體來9與步驟2

w=5:3:15

上述構建體中從5的載體15與步驟3

t=0:0.05:10;

t成爲0和10之間的向量,增量爲0.05。

f=t.*exp(2*t);

這就像一個普通函數定義。

plot(t,f)

這繪製在y軸和x軸的T的功能。

title('Fin kurva');

這只是設置圖形的標題。

g=3*t.*sin(t);

這是一個比較COMLEX函數定義,還是很容易理解它做什麼。

k=cos(t+2)+sin(t.^2);

另一個簡單的函數定義。

help XXX % XXX=sin, cos, plot, disp

訪問聯機幫助系統。

if CONDITION 
    STATEMENTS... 
end; 

不言自明。

if CONDITION 
    STATEMENTS... 
else 
    STATEMENTS... 
end; 

也不言自明。

for VARIABLE = VECTOR 
    SATSER... 
end; 

定期for循環

while VILLKOR 
    SATSER... 
end; 

很容易理解,如果你曾經編程。

所以我想我理解了大部分的陳述,但是從這個列表看來,與研究最相關的是方程求解器c = A \ y,我需要練習如何使用。

+0

http://www.mathworks.com/help/techdoc/ref/mldivide.html – Dan 2012-08-08 06:33:20

+1

學習更多有一些大的視頻教程http://blogs.mathworks.com/videos /,matlab員工的鏈接博客也給出了很好的例子。 – bdecaf 2012-08-08 07:30:26

回答

1

x=[2 3]

以上是一樣的陣列,該語句之後駐留在內存中的載體。

[ ... ]創建一個放在括號內的所有東西的矩陣。矩陣可以是標量(1x1),行向量(1xN),列向量(Nx1)或完整的2d矩陣(MxN)。 Matlab也知道更高維矩陣,但不能使用括號表示法輸入它們(然而,輸入更高維矩陣的切片(其自身是2d)是可能的)。

y=[4 5]'

這是一個列向量。

[4 5]創建1x2向量,所述'transpose operator,這將其轉換爲一個2x1矢量。

A=[x; y']

分號一個矩陣的行分開。

確實,因爲x1x2y'A2x2,其第一排和x第二排y'

B=sin(A)

這就像一個普通的數學函數。

sinY = sin(X)返回X元件的圓形正弦。所以你可以輸入標量,矢量,甚至矩陣。輸出與輸入大小相同。

z=x.*y'

這也是一樣的經典數學/ CS的功能。

.*element-wise multiplication operator。重要的是xy是相同的大小,否則這將錯誤!的x每個元素乘以的y相應元素,在這種情況下,結果將是:[2*4 3*5]

c=A\y

這是重要的,並解決的方程系統,但其中?原始公式如何陳述?上述解決方案Ay = c?請明確說明。

Documentation:反斜槓或矩陣左分割。如果A是方矩陣,則A \ B與inv(A)* B大致相同,但以不同方式計算。

所以它等於c=inv(A)*y,因此它解決了A*c=y。如果你不一直使用這些斜槓和反斜槓總是很棘手。

a='Hej'

上面的僅僅是一個可變像任何其他計算機語言。

不正確,'符號內指定的任何文本,被解釋爲文本,所以a將是一個字符數組,可以此使用whos function看到。

a(2)='a'

上面設置該載體的字符串 'A' 的第二元件。

正確,這是唯一可行的,因爲a是char類型,'a'(rhs)是char。由此產生的a將包含'Haj'。

v=3:2:9

上述構建體中從3至9的載體與步驟2

正確的,所以其結果是:v = [3 5 7 9]。注意3:2:10產生相同的向量!

w=5:3:15

上述構建體中從5的載體15與步驟3

正確

t=0:0.05:10;

t變爲0之間的矢量10增量爲0.05。

從0到10,包括!

f=t.*exp(2*t);

這就像一個普通函數定義。

同樣的事情與正弦函數加有的texp(...)

plot(t,f)

一個逐元素乘法此圖表上在y軸的功能和噸x軸上。

此圖表上的x軸,y軸和t矢量f,所以得到的曲線圖將包括數據點(t(ii), f(ii))ii範圍從1到所述矢量的長度。 tf必須具有相同的長度!

title('Fin kurva');

這只是設置圖形的標題。

正確

g=3*t.*sin(t); k=cos(t+2)+sin(t.^2);

簡單的功能。

正確

help XXX % XXX=sin, cos, plot, disp

訪問聯機幫助系統。

正確,但它不在線,它是內置的。例如:'help sin'會給你一些使用sin函數的幫助。

如果條件 報表... 結束;

不言自明。

如果條件 報表... 其他 報表... 結束;

也不言自明。

VARIABLE = VECTOR SATSER ... end;

定期for循環

是,VARIABLE將採取所有值VECTOR順序。您可以將VECTOR作爲變量或直接作爲1:2:10。例如:here

在線matlab文檔通常可以提供您需要的所有信息,以及其他所有信息。

+0

感謝您提供完整而詳細的答案。 – 2012-08-08 08:45:21

1

c=A\y是矩陣左除法求解方程Ac=y

如果A是方陣,然後A\y相當於inv(A)*ypinv(A)*ymldivide(A,y),但它們以不同的方式來計算。

如果A是矩形矩陣,則inv不適用,因此A\y等效於pinv(A)*ymldivide(A,y)。它們是Ac=y的最小二乘解,但意義不同。

更多信息here