(%為註解)
for i = 1 : 5 %迴圈 (i一開始為1 每次i++ 到i=5為止)
fprintf ('現在執行第 %d 次 \n', i);
end
運算
x^2 %x的2次方
向量與矩陣處理
s=[1 3 5 2]; %注意[]的使用,及個數字間的空白間隔
t=2*s+1
t=
3 7 11 5
清除變數
clear
矩陣處理
t(3)=2 %指定第三個元素改為2
t(100)=10 %直接加入第100個元素的數值 其餘補0
t(3)=[] % 清除元素數值
m*n的矩陣
A= [1 2 3 4;5 6 7 8; 9 10 11 12] %建立3X4的矩陣
A=
1 2 3 4
5 6 7 8
9 10 11 12
取出矩陣數值
A(2,3) %取出第2列第3行
A(2.1:3) %取出第2列第1~3行
A(2,[1 2 3]) %取出第2列 第 [自選行數] 行
A(2,:) %取出第2列全部元素
A' %轉置矩陣 矩陣行數列數交換
A=[A:2 4 6 8] % [ ]大括號為新增陣列用,次範例為新增一行元素
A(4:5,2:3) %取出第4~5列 2~3行
A(4;5,2:end) %"""" 2~最後一行
diag(A) 取出矩陣對角線 不足元素可補0
向量矩陣運算
min(x) 最大
max(x) 最小
mean(x) 平均
sum(x) 總和
sort(x) 排序
magic(x) 產生X*X的陣列
linspace(0,pi,8) 產生等距的元素 0~pi ,總共8個等距離的元素,第3項不寫預設為100
A^2 對矩陣做相乘(線性代數)
A.^2 對矩陣個元素做平方
A1/2 對矩陣做inverse除法
A.1/2 矩陣每個元素做倒數運算
A*diag(A) 乘上
reshape 改變矩陣維度
B=B(1:4,1:4) 將B定義為(4行4列)
C=reshape(B,2,8) 設定為2行8列 元素個數必須跟B矩陣一樣
定義矩陣
1 2 3
4 5 6
7 8 9
A=[1 2 3;4 5 6;7 8 9]
線圖
xlabbel(' ') X座標名稱
title('XXX') 標題
legend('xxx','yyy') 多條曲線說明
---------期中考後
A=[10 20 : 30 40]
B= A>20
B=[0 0
1 1]
find(A) %找出大於0的索引值
[a , b, v] = find(A>30) 找出A矩陣中大於30的 行索引和列所引 放到a,b裡 v則顯示數值成立1 不成立0
找介於7~11的數
----- 字串
str1 = 'I like MATLAB,'; % 建立字串變數 str1
str2 = ' JavaScript, and C++!'; % 建立字串變數 str2
str3 = [str1 str2] % 直接並排str1 及 str2,以建立str3
double( 字串) %求字串的ASCII碼
length(字串) %求字串長度
z = x+y % x='123' y='325' 將X跟Y的ASCII碼相加 結果為 100 100 100
whos %看變數占用多少byte
int2str(i) %數字轉字串
for i= 3:6
eval( 執行指令 ) %如同在MATLAB執行的指令
end
class( 變數 ) %判斷是不是字串變數 是了話傳回 "char"
ischar( 變數 ) %判斷是不是字串變數 是了話傳回 "1" 不是則0
departments = ['ee ';'cs ';'econ'] %一個變數放多個字串 但每個字串長度需一樣
char('ee','cs','econ') %自動補空白
dept1 = departments(1,:); %第一列元素
dept2 = deblank(dept1) %deblank 移除尾部空白字元
out = strcmp(str1, str2) %比較str1和str2字串是否相通 相同1 不相同0
strrep (s1,'da','00') % 將字串文字取代 s1字串中的da取代為00
isequal(A,A2) %比較兩個陣列是否相同