目錄
- 零基礎入門matlab
- 前言
- 1.界面認識
- 2.變數命名
- 3.資料型別
- 4.元胞陣列和結構體
- 5.矩陣操作
- 6.程式結構
- 7.基本繪圖操作
- 7.1.二維平面繪圖
- 7.2.三維立體繪圖
- 8.圖形的保存與匯出
- 9.補充
零基礎入門matlab
前言
這篇文章很適合MATLAB的入門學習,這也是我在入門時學習的筆記,
雖然說是”零基礎“入門matlab,但是如果有其它編程語言基礎的話,學起來自然會更輕松,
特別鳴謝:B站UP主——愛研究的小阿楠
1.界面認識

2.變數命名
注:Matlab中的注釋
%% 獨占一行的注釋(有上下橫線分割)
% 普通注釋
1)清慷訓境變數及命令
clear all 清除Workspace中的所有變數(右側作業區)
clc 清除Command Window中的所有命令(命令列視窗)
2)變數命名規則
①變數名區分大小寫
②變數名長度不超過63位(hhh,不會有人把變數名弄這么長吧~)
③變數名簡潔明了,盡量做到見名知意
3.資料型別
1)數字
2 + 4
10-7
3*5
8/2
2)字符與字串
s = ‘a’ (單引號表示字串)
==abs(s)==ASCII碼
char(97) 輸出 a (ASCII碼轉字串)
num2str(65) 輸出數字65
str=‘I love MATLAB & Machine Learning’
length(str) 字串長度
doc num2str
3)矩陣(Matlab最NB的東西)
A = [1 2 3; 4 5 2; 3 2 7]

B = A’ 把A進行轉置,行變列,列變行

C = A(😃 豎向拉長(不好描述,直接看下圖)

D = inv(A) 逆矩陣(必須時方陣才能求逆矩陣)
執行下面兩條陳述句
D = inv(A) (求逆矩陣)
A * D (相當于A×A的逆)

E = zeros(10,5,3) 創建一個10行5列3維的全0矩陣


E(:,:,1) = rand(10,5)
rand生成均勻分布的偽亂數,分布在(0~1)之間
主要語法:rand(m,n)生成m行n列的均勻分布的偽亂數
rand(m,n,‘double’)生成指定精度的均勻分布的偽亂數,引數還可以是’single’
rand(RandStream,m,n)利用指定的RandStream(隨機種子)生成偽亂數
E(:,:,2) = randi(5,10,5)
randi生成均勻分布的偽亂數
主要語法:randi(iMax)在開區間(0,iMax)生成均勻分布的偽亂數
randi(iMax,m,n)在開區間(0,iMax)生成mXn型隨機矩陣
r = randi([iMin,iMax],m,n)在開區間(iMin,iMax)生成mXn型隨機矩陣
E(:,:,3) = randn(10,5)
randn生成標準正態分布的偽亂數(均值為0,方差為1)
主要語法:和上面一樣


4.元胞陣列和結構體
元胞陣列:是MATLAB中特有的一種資料型別,是陣列的一種,其內部元素可以是屬于不同的布局型別,概念理解上,可以認為它和C語言里面的結構體、C++里面的物件很類似,元胞陣列是MATLAB中的特色資料型別,它不同于其它資料型別(如字符型,字符陣列或者字串,以及一般的算數資料和陣列),它特有的存取資料方法決定了它的特點,它有給人一種查詢資訊的感覺,可以逐漸追蹤一直到所有的變數全部翻譯成基本資料資訊,它的class函式輸出就是cell(細胞)
%元胞陣列
A = cell(1,6)
A{2} = eye(3) %2021版本前的matlab下標從1開始
A{5} = magic(5)
B = A{5}
注:magic:字面意思是魔方,魔術的意思,在MATLAB中用來生成n階幻方,比如三階幻方就是1-9九個數字,組成一個3*3的矩陣,使得該矩陣無論橫、豎還是斜三個方向上的三個數的和總是相同的,幻方是一個很古老的問題,試一下就知道了!

結構體
%結構體
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40])
books.name %屬性
books.name(1)
books.name{1}

5.矩陣操作
1)矩陣的定義與構造
A = [1,2,3,4,5,6,5,4,6]
B = 1:2:9 %第二個引數為步長,不可預設
B = 1:3:9
C = repmat(B,3,2) %重復執行3行2列
D = ones(2,4) %生成一個2行4列的全1矩陣

2)矩陣的四則運算
A = [1 2 3 4; 5 6 7 8]
B = [1 1 2 2; 2 2 1 1]
C = A + B
D = A - B
E = A * B'
F = A .* B % .*表示對應項相乘
G = A / B %相當于A*B的逆 G*B = A G*B*pinv(B) = A*pinv(B) G = A*pinv(B),相當于A乘B
H = A ./ B % ./表示對應項相除


3)矩陣的下標
A = magic(5)
B = A(2,3)
C = A(3,:) % :為取全部,那么這條陳述句表示取第三行
D = A(:,4) %取第四列
[m,n] = find(A > 20) %找到大于20的序號值/矩陣
%取的是索引值


6.程式結構




7.基本繪圖操作
7.1.二維平面繪圖
%1.二維平面繪圖
x = 0:0.01:2*pi %定義x的范圍,第二個引數表示步長
y = sin(x)
figure %建立一個幕布
plot(x,y) %繪制當前二維平面圖
title('y = sin(x)') %標題
xlabel('x') %x軸
ylabel('sin(x)') %y軸
xlim([0 2*pi]) % x坐標值的范圍



x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
figure
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); %共用一個x的坐標系,在y上有不同的取值
%設定相應的標簽
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time(\musec)')
title('Multiple Decay Rates')
set(H1,'LineStyle','--')
set(H2,'LineStyle',':')

7.2.三維立體繪圖
%2.三維立體繪圖
t = 0: pi/50: 10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
%hold on
%hold off %不保留當前操作
grid on %把圖片繪制出來,在圖片中加一些網格線
axis square %使整個圖(連同坐標系)呈方體

注:關于hold on 和 hold off的用法:點這
8.圖形的保存與匯出
如果直接用截圖的方式截取matlab生成的影像,會影響影像的清晰度,因此我們建議:可以用如下方法保存與匯出圖形,
1)如圖

2)編輯→復制選項
可調節相應元素

3)編輯→圖窗屬性

4)檔案→匯出設定

通過調節寬度、高度等像素值屬性,可以讓圖片即使很小,文字依然清晰,
Matlab基礎的部分到這就結束了,下面作一點補充~
9.補充
[x,y,z] = peaks(30); %peaks命令用于產生雙峰函式或者是用雙峰函式繪圖
mesh(x,y,z)
grid

完結~
感謝大家的支持、點贊、收藏、關注以及批評指正~
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/289968.html
標籤:其他
上一篇:聊一聊我在騰訊的外包同事
