数学建模 MATLAB基础
%% Matlab基本的小常識(shí)
% (1)在每一行的語(yǔ)句后面加上分號(hào)(一定要是英文的哦;中文的長(zhǎng)這個(gè)樣子;)表示不顯示運(yùn)行結(jié)果
a = 3;
a = 5
% (2)多行注釋:選中要注釋的若干語(yǔ)句,快捷鍵Ctrl+R
% a = 3;
% a = 5
% (3)取消注釋:選中要取消注釋的語(yǔ)句,快捷鍵Ctrl+T
% 我想要取消注釋下面這行
% 還有這一行
% clear可以清楚工作區(qū)的所有變量
clear
% clc可以清除命令行窗口中的所有文本,讓屏幕變得干凈
clc
% 所以大家在很多代碼開(kāi)頭,都會(huì)見(jiàn)到:
clear;clc % 分號(hào)也用于區(qū)分行。
% 這兩條一起使用,起到“初始化”的作用,防止之前的結(jié)果對(duì)新腳本文件(后綴名是 .m)產(chǎn)生干擾。
%% 輸出和輸入函數(shù)(disp 和 input)
% disp函數(shù)
% matlab中disp()就是屏幕輸出函數(shù),類似于c語(yǔ)言中的printf()函數(shù)
disp('我是清風(fēng),大家好鴨~~~記得投幣關(guān)注我哦')
a = [1,2,3] %同一行中間用逗號(hào)分隔,也可以不用逗號(hào),直接用空格
a = [1 2 3]
disp(a)
% 注意,disp函數(shù)比較特殊,這里可要分號(hào),可不要分號(hào)哦
disp(a);
% matlab中兩個(gè)字符串的合并有兩種方法
% (1)strcat(str1,str2……,strn)
strcat('字符串1','字符串2')
% (2)[str 1,str 2,……, str n]或[str1 str2 …… strn]
['字符串1' '字符串2']
['字符串1','字符串2']
% 一個(gè)有用的字符串函數(shù):num2str 將數(shù)字轉(zhuǎn)換為字符串
c = 100
num2str(c)
disp(['c的取值為' num2str(c)])
disp(strcat('c的取值為', num2str(c)))
% input函數(shù)
% 一般我們會(huì)將輸入的數(shù)、向量、矩陣、字符串等賦給一個(gè)變量,這里我們賦給A
A = input('請(qǐng)輸入A:');
B = input('請(qǐng)輸入B:')
% 注意觀察工作區(qū),并體會(huì)input后面加分號(hào)和不加分號(hào)的區(qū)別
%% sum函數(shù)
% (1)如果是向量(無(wú)論是行向量還是列向量),都是直接求和
E = [1,2,3]
sum(E)
E = [1;2;3]
sum(E)
% (2)如果是矩陣,則需要根據(jù)行和列的方向作區(qū)分
clc
E = [1,2;3,4;5,6]
% a=sum(x); %按列求和(得到一個(gè)行向量)
a = sum(E)
a = sum(E,1)
% a=sum(x,2); %按行求和(得到一個(gè)列向量)
a = sum(E,2)
% a=sum(x(:));%對(duì)整個(gè)矩陣求和
a = sum(sum(E))
a = sum(E(:))
%% 基礎(chǔ):matlab中如何提取矩陣中指定位置的元素?
% (1)取指定行和列的一個(gè)元素(輸出的是一個(gè)值)
clc;A=[1 1 4 1/3 3;1 1 4 1/3 3;1/4 1/4 1 1/3 1/2;3 3 3 1 3;1/3 1/3 2 1/3 1];
A
A(2,1)
A(3,2)
% (2)取指定的某一行的全部元素(輸出的是一個(gè)行向量)
clc;A
A(2,:)
A(5,:)
% (3)取指定的某一列的全部元素(輸出的是一個(gè)列向量)
clc;A
A(:,1)
A(:,3)
% (4)取指定的某些行的全部元素(輸出的是一個(gè)矩陣)
clc;A
A([2,5],:) % 只取第二行和第五行(一共2行)
A(2:5,:) % 取第二行到第五行(一共4行)
A(2:2:5,:) % 取第二行和第四行 (從2開(kāi)始,每次遞增2個(gè)單位,到5結(jié)束)
1:3:10
10:-1:1
A(2:end,:) % 取第二行到最后一行
A(2:end-1,:) % 取第二行到倒數(shù)第二行
% (5)取全部元素(按列拼接的,最終輸出的是一個(gè)列向量)
clc;A
A(:)
%% size函數(shù)
clc;
A = [1,2,3;4,5,6]
B = [1,2,3,4,5,6]
size(A)
size(B)
% size(A)函數(shù)是用來(lái)求矩陣A的大小的,它返回一個(gè)行向量,第一個(gè)元素是矩陣的行數(shù),第二個(gè)元素是矩陣的列數(shù)
[r,c] = size(A)
% 將矩陣A的行數(shù)返回到第一個(gè)變量r,將矩陣的列數(shù)返回到第二個(gè)變量c
r = size(A,1) %返回行數(shù)
c = size(A,2) %返回列數(shù)
%% repmat函數(shù)
% B = repmat(A,m,n):將矩陣A復(fù)制m×n塊,即把A作為B的元素,B由m×n個(gè)A平鋪而成。
A = [1,2,3;4,5,6]
B = repmat(A,2,1)
B = repmat(A,3,2)
%% Matlab中矩陣的運(yùn)算
% MATLAB在矩陣的運(yùn)算中,“*”號(hào)和“/”號(hào)代表矩陣之間的乘法與除法(A/B = A*inv(B))
A = [1,2;3,4]
B = [1,0;1,1]
A * B
inv(B) % 求B的逆矩陣
B * inv(B)
A * inv(B)
A / B
% 兩個(gè)形狀相同的矩陣對(duì)應(yīng)元素之間的乘除法需要使用“.*”和“./”
A = [1,2;3,4]
B = [1,0;1,1]
A .* B
A ./ B
% 每個(gè)元素同時(shí)和常數(shù)相乘或相除操作都可以使用
A = [1,2;3,4]
A * 2
A .* 2
A / 2
A ./ 2
% 每個(gè)元素同時(shí)乘方時(shí)只能用 .^
A = [1,2;3,4]
A .^ 2
A ^ 2
A * A
%% Matlab中求特征值和特征向量
% 在Matlab中,計(jì)算矩陣A的特征值和特征向量的函數(shù)是eig(A),其中最常用的兩個(gè)用法:
A = [1 2 3 ;2 2 1;2 0 3]
% (1)E=eig(A):求矩陣A的全部特征值,構(gòu)成向量E。
E=eig(A)
% (2)[V,D]=eig(A):求矩陣A的全部特征值,構(gòu)成對(duì)角陣D,并求A的特征向量構(gòu)成V的列向量。(V的每一列都是D中與之相同列的特征值的特征向量)
[V,D]=eig(A)
%% find函數(shù)的基本用法
% 下面例子來(lái)自博客:https://www.cnblogs.com/anzhiwu815/p/5907033.html 博客內(nèi)有更加深入的探究
% find函數(shù),它可以用來(lái)返回向量或者矩陣中不為0的元素的位置索引。
clc;X = [1 0 4 -3 0 0 0 8 6]
ind = find(X)
% 其有多種用法,比如返回前2個(gè)不為0的元素的位置:
ind = find(X,2)
%上面針對(duì)的是向量(一維),若X是一個(gè)矩陣(二維,有行和列),索引該如何返回呢?
clc;X = [1 -3 0;0 0 8;4 0 6]
ind = find(X)
% 這是因?yàn)樵贛atlab在存儲(chǔ)矩陣時(shí),是一列一列存儲(chǔ)的,我們可以做一下驗(yàn)證:
X(4)
% 假如你需要按照行列的信息輸出該怎么辦呢?
[r,c] = find(X)
[r,c] = find(X,1) %只找第一個(gè)非0元素
%% 矩陣與常數(shù)的大小判斷運(yùn)算
% 共有三種運(yùn)算符:大于> ;小于< ;等于 == (一個(gè)等號(hào)表示賦值;兩個(gè)等號(hào)表示判斷)
clc
X = [1 -3 0;0 0 8;4 0 6]
X > 0
X == 4
%% 判斷語(yǔ)句
% Matlab的判斷語(yǔ)句,if所在的行不需要冒號(hào),語(yǔ)句的最后一定要以end結(jié)尾 ;中間的語(yǔ)句要注意縮進(jìn)。
a = input('請(qǐng)輸入考試分?jǐn)?shù):')
if a >= 85
disp('成績(jī)優(yōu)秀')
elseif a >= 60
disp('成績(jī)合格')
else
disp('成績(jī)掛科')
end
% % 注意:代碼文件僅供參考,一定不要直接用于自己的數(shù)模論文中
% % 國(guó)賽對(duì)于論文的查重要求非常嚴(yán)格,代碼雷同也算作抄襲
% % 視頻中提到的附件可在售后群(購(gòu)買后收到的那個(gè)無(wú)憂自動(dòng)發(fā)貨的短信中有加入方式)的群文件中下載。包括講義、代碼、我視頻中推薦的資料等。
% % 關(guān)注我的微信公眾號(hào)《數(shù)學(xué)建模學(xué)習(xí)交流》,后臺(tái)發(fā)送“軟件”兩個(gè)字,可獲得常見(jiàn)的建模軟件下載方法;發(fā)送“數(shù)據(jù)”兩個(gè)字,可獲得建模數(shù)據(jù)的獲取方法;發(fā)送“畫(huà)圖”兩個(gè)字,可獲得數(shù)學(xué)建模中常見(jiàn)的畫(huà)圖方法。另外,也可以看看公眾號(hào)的歷史文章,里面發(fā)布的都是對(duì)大家有幫助的技巧。
% % 購(gòu)買更多優(yōu)質(zhì)精選的數(shù)學(xué)建模資料,可關(guān)注我的微信公眾號(hào)《數(shù)學(xué)建模學(xué)習(xí)交流》,在后臺(tái)發(fā)送“買”這個(gè)字即可進(jìn)入店鋪(我的微店地址:https://weidian.com/?userid=1372657210)進(jìn)行購(gòu)買。
% % 視頻價(jià)格不貴,但價(jià)值很高。單人購(gòu)買觀看只需要58元,三人購(gòu)買人均僅需46元,視頻本身也是下載到本地觀看的,所以請(qǐng)大家不要侵犯知識(shí)產(chǎn)權(quán),對(duì)視頻或者資料進(jìn)行二次銷售。
% % 如何修改代碼避免查重的方法:https://www.bilibili.com/video/av59423231(必看)
來(lái)源:1.2 層次分析法代碼講解_嗶哩嗶哩_bilibili
總結(jié)
以上是生活随笔為你收集整理的数学建模 MATLAB基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于ArduinoUNOR3的智能调速风
- 下一篇: 海康威视相机控制初步