一、 數據和變量:
省略號(三個英文句點):表示換行
歷史指令調用:用方向鍵上下
數據顯示格式:
format short
format long
format rational
復數: I,j
realmin:最小正實數
realmax:最大正實數
Inf:無窮大 eg:2/0
NaN:不定值 eg:0/0
二、 數組的輸入與分析:
中括號[]表示矩陣,同行元素用逗號或空格分隔;不同用分號或回車分隔。
函數linspace(x1,x2,n)生成x1與x2間的n維等距行向量
編址:不能為0,按列編址;
冒號運算: eg;生成1到10,公差為2的等差數組:a=[1:2:10]
Length: 計算向量的尺寸
Size: 計算矩陣的尺寸
查看矩陣的某個元素:eg:A(2,3)表示2行3列的元素
矩陣元素的抽取:eg:A=[1 2 3; 4 5 6];
A(2,:)表示抽取矩陣第二行的元素
A(:,3)表示抽取矩陣第三列的元素
子矩陣的抽取:A([1,2],[2,3]) 表示抽取第一行下標為1,2的元素2,3和第二行下標為2,3的元素5,6
A(:)把矩陣A變成向量形式
更改向量的元素:eg: a(2)=6 把向量的第二元素改成6;
同理,改變矩陣的元素也一樣,A(2,3)=7 二行三列的元素改為7;
拼接:eg: [A,B]把A矩陣和B矩陣按行方式進行拼接,如果逗號改為分號就是按列進行拼接
sum: 矩陣:列相加; 向量:全部相加
prod(乘積): 如果自變量是向量,求所有向量的乘積; 如果自變量是矩陣,求每一列的乘積;
min,max:如果自變量是向量,求所有向量的最小最大值; 如果自變量是矩陣,求每一列的最小最大值;
特殊矩陣
Zeros(m,n):零矩陣 ; ones(m,n):一矩陣 ; eye(m,n):單位矩陣
導入外部excel數據文件:
剪切板 + Array Editor
菜單import data
數組乘方:A.^K; K.^A:表示矩陣中的每一個元素以K為底,對應元素的次方形成的新矩陣
數組運算:A.*B,A./B; A-3(每個元素-3)
數學函數:
矩陣的數字函數是按元素運算
fix: 向0取整
ceil :向正無窮取整
rem:除法余數
real:復數實部
angle:復數幅角
log:自然對數 (ln)
floor:向負無窮取整
mod:模除求余
abs:絕對值
image:復數虛部
conj:復數共軛
log10:以10為底對數
eg:以2為底4的對數為2 ---log2(4)
邏輯運算:
any:至少有一個滿足條件 all:必須全部滿足條件
find:找到滿足條件元素的下標
測試題:
a表示每一列的最小值
b表示每列最小值所在的行號
分號的作用:
不讓表達式結果顯示出來
兩個語句分隔符
矩陣換行
三、字符串、元胞和結構
數據類型:
數值(Double):
邏輯(Logical):
字符(Char): a = '清心明目',b=a([4:-1:1]) 結果為: 目明清心
字符串的拼接:t=’好’, c=[a,t] 結果為 清心明目好
元胞(Cell):
結構(Structure):
字符串轉化 num2str,str2num
第一章作業題
執行下列指令,觀察運算結果,理解其意義
(1)[a,b]=min([10 20;30 4])
a的值是矩陣每一列的最小值,即10 4
b的值是矩陣最小值所在的行號
(2)[10 20;30 40]>=[40 30;20 10]
返回對應元素比較結果的值0,1
(3)find([10 20;30 40]>=[40 30;20 10])
返回的結果是將矩陣先轉化為列向量再比較得到的位置
題中的矩陣變換為列向量為(10 30 20 40)T ,(40 20 30 10)T;
對應元素進行比較,結果為
(4)[x,y]= find([10 20;30 40]>=[40 30;20 10])
x是返回滿足條件的元素所在行
y是返回滿足條件的元素所在列
結果是
(5)linspace(3,4,5)
以3開始,以4結尾,分成5份
(6)fun='abs(x)',x=-2,eval(fun),double(fun)
結果為:
eval函數將括號內的字符串視為語句並運行
double函數將字符串中每個字符的ASCII碼返回
(7)本金k以每年n次,每次p%的增值率增加,當增加到rk時所花費的時間為
T=lnr/nln(1+0.01p), 用MATLAB表達式寫出該公式並用下列數據計算:r=2,p=0.5,n=12.
(8)已知函數f(x)=x4 -2x 在(-2,2)內有兩個根。取步長h=0.05,通過計算函數值求得函數的最小值點和兩個根的近似解。(求近似根等價於求函數絕對值的最小值點)
第一種解法:
最小值:
x=-2:0.05:2;
f=x.^4-2.^x;
[fmin,min_index]=min(f) %fmin:最小值;min_index最小值點編址
x(min_index) %最小值點
近似解:
[f1,x1_index]=min(abs(f)) %求近似根
x(x1_index)
x(x1_index)=[]; f=x.^4-2.^x; %刪去絕對值最小的點以求函數絕對值次小的點
[f2,x2_index]=min(abs(f)) %求另一近似根
x(x2_index)
第二種解法:
clear all;
fun=inline(‘x.^4-2.^x’,’x’);
[x,f]=fminbnd(fun,-2,2); %求最小值
%求零點
fzero(fun,[-2,0]);
fzero(fun,[0,2]);
PS:
iline函數用於定義函數
變量名=inline(‘matlab有效表達式’,’變量1’,’變量2’……)