matlab快速入门案例及常用技巧 | 《matlab数学建模方法与实践(第三版)》学习笔记
目錄
快速入門案例:
解決流程:
具體實現(xiàn):
一、獲取數(shù)據(jù)
二、數(shù)據(jù)探索和建模
三、分享結(jié)果
常用技巧
一、常用標(biāo)點(diǎn)功能
二、常用操作指令
三、指令編輯操作鍵
四、matlab數(shù)據(jù)類型
五、開發(fā)模式
總結(jié)
附件
快速入門案例:
已知股票的交易數(shù)據(jù),即日期/日期序列值(Date/DateNum)、開盤價(Popen)、最高價(Phigh)、最低價(Plow)、收盤價(Pclose)、成交量(Volum)和換手率(Turn),試用某種方法來評價這只股票的價值和風(fēng)險。
(數(shù)據(jù)文件可在附件里下載)
注:日期序列值(DateNum):日期數(shù)據(jù)的實質(zhì)其實是“序列值”,按照“以1900年1月1日為第1天”的算法,算出單元格中的日期為第幾天。例如,2014年1月1日從1900年1月1日算起正好是第41640天,所以“2014/1/1”的序列值即為41640。
解決流程:
具體實現(xiàn):
一、獲取數(shù)據(jù)
直接在matlab中右鍵文件 -?導(dǎo)入數(shù)據(jù),彈出對話框,可選擇輸出類型:表、列向量、數(shù)值矩陣、字符串?dāng)?shù)組、元胞數(shù)組(matlab中常用變量類型,本文選擇列向量),單擊導(dǎo)入所選內(nèi)容,數(shù)據(jù)成功導(dǎo)入變量。
?? ? ??
在導(dǎo)入所選內(nèi)容下拉菜單選擇生成腳本 ,matlab打開腳本對話框,并自動生成導(dǎo)入數(shù)據(jù)需要調(diào)用的代碼。
代碼如下:
%% 導(dǎo)入電子表格中的數(shù)據(jù) % 用于從以下電子表格導(dǎo)入數(shù)據(jù)的腳本: % 工作簿: C:\Users\Hao\Desktop\程序_MATLAB數(shù)學(xué)建模方法與實踐_卓金武等\Cha2\sz000004.xls % 工作表: Sheet1 % 由 MATLAB 于 2022-02-25 11:50:30 自動生成%% 設(shè)置導(dǎo)入選項并導(dǎo)入數(shù)據(jù) opts = spreadsheetImportOptions("NumVariables", 8);% 指定工作表和范圍 opts.Sheet = "Sheet1"; opts.DataRange = "A2:H99";% 指定列名稱和類型 opts.VariableNames = ["Date1", "DateNum1", "Popen1", "Phigh1", "Plow1", "Pclose1", "Volum1", "Turn1"]; opts.VariableTypes = ["double", "double", "double", "double", "double", "double", "double", "double"];% 導(dǎo)入數(shù)據(jù) tbl = readtable("C:\Users\Hao\Desktop\程序_MATLAB數(shù)學(xué)建模方法與實踐_卓金武等\Cha2\sz000004.xls", opts, "UseExcel", false);%% 轉(zhuǎn)換為輸出類型 Date1 = tbl.Date1; DateNum1 = tbl.DateNum1; Popen1 = tbl.Popen1; Phigh1 = tbl.Phigh1; Plow1 = tbl.Plow1; Pclose1 = tbl.Pclose1; Volum1 = tbl.Volum1; Turn1 = tbl.Turn1;%% 清除臨時變量 clear opts tbl二、數(shù)據(jù)探索和建模
2.1 分析數(shù)據(jù)
選定日期和收盤價作為重點(diǎn)研究對象,對數(shù)據(jù)進(jìn)行數(shù)據(jù)可視化處理以更好的認(rèn)識數(shù)據(jù)(試用plot)。
依次選擇DateNum、Pclose(先選的對應(yīng)x軸,后選對應(yīng)y軸),然后點(diǎn)擊繪圖下的plot選項,生成二維線圖。
代碼如下:(曲線圖和柱狀圖)
%% 數(shù)據(jù)探索 figure % 創(chuàng)建一個新的圖像窗口 plot(DateNum,Pclose,'k') % 更改圖的的顏色為黑色(打印后不失真) datetick('x','mm');% 更改日期顯示類型 xlabel('日期'); % x軸說明 ylabel('收盤價'); % y軸說明 figure bar(Pclose) % 條形圖,作為對照圖形2.2 建模
我們選定兩個參量來描述股票的價值和風(fēng)險。
斜率(股票的價值)
最大回撤(股票的風(fēng)險)
注:回撤是從一個時期開始到結(jié)束時總回報的百分比下降。如果總權(quán)益時間序列在整個期間都在增加,則回撤為 0。否則,它是一個正數(shù)。最大回撤是下行風(fēng)險的事前代理,它計算在指定時間間隔內(nèi)可以形成的所有時間間隔內(nèi)的最大回撤。
如何得到曲線斜率?根據(jù)數(shù)據(jù)可視化結(jié)果,數(shù)據(jù)趨勢大致呈線性,可將曲線擬合為線性。polyfit()
代碼如下:(擬合后的曲線圖及對照)
%% 股票價值的評估 p = polyfit(DateNum,Pclose,1); % 多項式擬合 % 分號作用為不在命令窗口顯示執(zhí)行結(jié)果 P1 = polyval(p,DateNum); % 計算多項式 p 在 DateNum 的每個點(diǎn)處的值 figure plot(DateNum,P1,DateNum,Pclose,'*g'); % 模型與原始數(shù)據(jù)的對照 value = p(1) % 將斜率賦值給value, 作為股票的價值。如何得到曲線最大回撤?maxdrawdown()
代碼如下:
%% 股票風(fēng)險的評估 MaxDD = maxdrawdown(Pclose); % 計算最大回撤 risk = MaxDD % 將最大回撤賦值給risk, 作為股票的風(fēng)險圖形結(jié)果:
三、分享結(jié)果
1、做成能獨(dú)立運(yùn)行的程序,如腳本
2、報告或論文
3、軟件和應(yīng)用
做成腳本和軟件,使應(yīng)用更高效和模塊化。而生成報告是比較實用的項目展示形式,對于寫報告和論文,選擇word格式更方便。
常用技巧
一、常用標(biāo)點(diǎn)功能
,
顯示計算結(jié)果的指令與其后面指令之間的分隔
輸入量與輸入量之間的分隔
數(shù)組元素的分隔
;
不顯示計算結(jié)果指令的結(jié)尾標(biāo)志
不顯示計算結(jié)果的指令與其后面指令之間的分隔
數(shù)組行間的分隔
:
生成一維數(shù)值數(shù)組
用作單下標(biāo)援引時,表示全部元素構(gòu)成的長列
用作多下標(biāo)援引時,表示對應(yīng)維度上的全部元素
%
注釋
' '
字符串標(biāo)記符
( )
數(shù)組援引時用
函數(shù)指令時表示輸入變量
[ ]
輸入數(shù)組時用
函數(shù)指令時表示輸出變量
{ }
元胞數(shù)組標(biāo)記符
...
由三個以上連續(xù)點(diǎn)構(gòu)成,可視為以下的物理行是該行的邏輯繼續(xù)
二、常用操作指令
clc
清除指令窗口中顯示的內(nèi)容
clear
清除matlab工作空間中保存的變量
close all
關(guān)閉所有打開的圖形窗口
edit
打開m文件編輯器
disp
顯示變量的內(nèi)容
三、指令編輯操作鍵
↑↓
前尋/后尋調(diào)回已輸入過的指令行
Tab
補(bǔ)全命令
四、matlab數(shù)據(jù)類型
matlab中數(shù)據(jù)絕大多數(shù)以數(shù)組形式使用。
| 特征 | 數(shù)據(jù)類型 | 用途 |
| 與常用 編程語 言類似 | 邏輯(logical) | --- |
| 字符(char) | --- | |
| 數(shù)值(numeric) | --- | |
| 結(jié)構(gòu)體(structure) | --- | |
| matlab 特有 | 元胞(cell) | 元胞數(shù)組的元素,元胞數(shù)組視為一種無所不包的通用矩陣(廣義矩陣),元胞可以是任何一種數(shù)據(jù)類型的常數(shù)或常量,其尺寸、占用內(nèi)存空間、內(nèi)容可完全不同。 |
| 表(table) | ?支持類型數(shù)據(jù)類型方面與元胞類似。優(yōu)勢:相當(dāng)于一個小型數(shù)據(jù)庫。展示數(shù)據(jù)上,可像EXCEL那樣易于展示數(shù)據(jù);數(shù)據(jù)操作上,見于數(shù)據(jù)庫操作,如插入、查詢、修改。 |
五、開發(fā)模式
1、命令行模式
小型科學(xué)計算問題,項目的探索階段
2、腳本模式
重復(fù)執(zhí)行運(yùn)算
3、面向?qū)ο竽J?/strong>
開發(fā)維護(hù)大型應(yīng)用與數(shù)據(jù)結(jié)構(gòu)
總結(jié)
針對matlab的學(xué)習(xí),根據(jù)具體的項目更加高效,善于查找。
matlab代碼總結(jié):
- figure % 創(chuàng)建一個新的圖像窗口
- plot(x,y1,x,y2,'k') %在一個坐標(biāo)內(nèi)繪制2個曲線圖
- datetick('x','mm') % 更改日期顯示類型
- xlabel('日期') % x軸說明
- ylabel('收盤價') % y軸說明
- title('標(biāo)題') %輸入標(biāo)題
- bar(y) % 條形圖
- polyfit(x,y,M) % 多項式擬合
- polyval(p,x) % 計算多項式 p 在 x 的每個點(diǎn)處的值
- maxdrawdown(y) % 計算最大回撤
附件
鏈接(迅雷):https://pan.xunlei.com/s/VMwolVdy0NCUkYnoBkItcFvyA1
提取碼:9p3y
總結(jié)
以上是生活随笔為你收集整理的matlab快速入门案例及常用技巧 | 《matlab数学建模方法与实践(第三版)》学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: H2教程系列(一) 简介与安装
- 下一篇: matlab在数学建模中的应用pdf