在使用北太天元編寫(xiě)一個(gè)程序時(shí),經(jīng)常需要從外部讀入數(shù)據(jù),或者將程序運(yùn)行的結(jié)果保存為文件,北太天元主要支持以下格式數(shù)據(jù)文件的導(dǎo)入導(dǎo)出:.mat、.txt、.csv、.xls、.xlsx。具體介紹及用法如下。
一、MAT文件的導(dǎo)入導(dǎo)出
1. MAT文件的導(dǎo)出
1.1 使用save函數(shù)
>> help save save 將工作區(qū)變量保存到文件中。 save(filename),將當(dāng)前工作區(qū)中的所有變量存儲(chǔ)在名為 filename 的二進(jìn)制文件 MAT 文件中。 filename 為字符向量或字符串標(biāo)量。例如,將文件名指定為 "myFile" 或 "myFile.mat"。 如果未指定文件名,則將數(shù)據(jù)保存到名為 baltamatica.mat 的文件中。 如果 filename 不包含擴(kuò)展名,則會(huì)默認(rèn)補(bǔ)充 '.mat' 擴(kuò)展名。如果文件名不包含完整路徑,則保存在當(dāng)前文件夾中。 保存路徑必須具有寫(xiě)入文件的權(quán)限。 當(dāng)?shù)谝粋€(gè)參數(shù)為 '-struct' 時(shí),會(huì)將 '-struct' 后的第二個(gè)參數(shù) (非以 '-' 開(kāi)頭的參數(shù)) 當(dāng)做 filename, 如 save('-struct',structname,filename,fieldnames)。 save(filename,variables),僅存儲(chǔ)指定的變量。filename 和 variables 為字符向量或字符串標(biāo)量。 variables 可使用 '*' 通配符匹配模式。例如,save('data.mat','A*') 保存以 A 開(kāi)頭的所有變量。 save(filename,'-struct',structname,fieldnames),將標(biāo)量結(jié)構(gòu)體的字段存儲(chǔ)為單個(gè)變量。 如果使用了 fieldnames 參數(shù),則 save 函數(shù)僅存儲(chǔ)結(jié)構(gòu)體中的 fieldnames 字段。 fieldnames 與 variables 具有相同的形式。不能在同一調(diào)用中指定 variables 和 '-struct' 來(lái)保存數(shù)據(jù)。
示例:保存structure數(shù)組實(shí)例。
例如有如下的structure數(shù)組s1:
s1.a = 22.33; s1.b =”Steve”; s1.c = ' World!';
使用 save 命令,可將整個(gè)structure數(shù)組保存為struct_data.mat。
>> save('struct_data.mat', 's1');
1.2 使用界面操作
在工作區(qū)中使用鼠標(biāo)左鍵選中要保存的數(shù)據(jù),點(diǎn)擊鼠標(biāo)右鍵,會(huì)彈出操作框,點(diǎn)擊保存即可,在工作區(qū)空白處點(diǎn)擊鼠標(biāo)右鍵,可保存工作區(qū)的所有變量。
2.MAT文件的導(dǎo)入
2.1使用load函數(shù)
>> help load load 將文件變量加載到工作區(qū)中。 load(filename),將 MAT 文件中的變量加載到工作區(qū)。 filename 為字符向量或字符串標(biāo)量。例如,將文件名指定為 "myFile" 或 "myFile.mat"。 如果未指定文件名,默認(rèn)讀取當(dāng)前路徑下的 baltamatica.mat。 load(filename,variables),讀取指定的變量。filename 和 variables 為字符向量或字符串標(biāo)量。 variables 可使用 '*' 通配符匹配模式。例如,load('data.mat','A*') 加載以 A 開(kāi)頭的所有變量。 load(filename,'-mat') 將 filename 視為 mat 文件,而不管文件擴(kuò)展名如何。 load(filename,'-mat',variables) 加載 filename 文件中的指定變量。
示例:
將A.mat文件中的變量導(dǎo)入到structure數(shù)組s中。
>> s=load("A.mat") s = 1x1 struct 結(jié)構(gòu)體: A1: [3x3 double] A2: "string" A3: [1x3 double] A4: [1x2 cell array]
2.2 使用界面操作
點(diǎn)擊菜單欄的“導(dǎo)入“->”導(dǎo)入數(shù)據(jù)”
彈出導(dǎo)入文件操作界面
二、TXT、CSV及Excel文件的導(dǎo)入導(dǎo)出
1. TXT、CSV及Excel文件的導(dǎo)入
1.1 使用readmatrix函數(shù)
(1)導(dǎo)入文本文件
文本文件的數(shù)據(jù)格式在行和列上必須采取一致的模式,并使用分隔符來(lái)分隔各個(gè)數(shù)據(jù)項(xiàng)。分隔符可以是空格、逗號(hào)、分號(hào)或其他字符,單個(gè)的數(shù)據(jù)可以是字母、數(shù)值字符或它們的混合形式。
示例:文件data.txt包含了兩行數(shù)據(jù),各數(shù)據(jù)之間由空格分隔。
1 2 3
4 5 6
>> m=readmatrix("data.txt") %使用readmatrix導(dǎo)入數(shù)據(jù) m = 2x3 double 1 2 3 4 5 6
(2)導(dǎo)入csv數(shù)據(jù)
csv文件是逗號(hào)分隔的純文件文件。除了可以使用readmatrix函數(shù)讀取之外,同時(shí)也可以使用csvread函數(shù),推薦使用readmatrix函數(shù)。
示例:文件data.csv中的數(shù)據(jù)如下:
1.2,2.5,3.2,4.6
5.4,6.2,7.1,8.2
>> m=readmatrix("data.csv") %使用readmatrix導(dǎo)入數(shù)據(jù) m = 2x4 double 1.2000 2.5000 3.2000 4.6000 5.4000 6.2000 7.1000 8.2000
(3)導(dǎo)入Excel數(shù)據(jù)
Excel文件包含.xls及.xlsx兩類(lèi)文件。
示例:文件data.xlsx中的數(shù)據(jù)如下:
>> m=readmatrix("data.xlsx") %使用readmatrix導(dǎo)入數(shù)據(jù) m = 5x2 double 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 NaN NaN 7.0000 8.0000
1.2 使用界面操作
點(diǎn)擊菜單欄的“導(dǎo)入“->”導(dǎo)入數(shù)據(jù)”,彈出導(dǎo)入文件操作界面,選擇文件導(dǎo)入即可。
2. TXT、CSV及Excel文件的導(dǎo)出
2.1使用writematrix函數(shù)
(1)保存txt文本文件
示例:將a=[1,2,3;4,5,6;7,8,9]'所表示的矩陣數(shù)據(jù)存儲(chǔ)到“w_data.txt”的文件當(dāng)中,以制表符分隔。
>> a = 3x3 double 1 4 7 2 5 8 3 6 9 >> writematrix(a,"w_data.txt","Delimiter","-")
使用文本查看器查看w_data.txt:
(2)保存csv文本文件
示例:將a=[1,2,3;4,5,6;7,8,9]'所表示的矩陣數(shù)據(jù)存儲(chǔ)到“w_data.csv”的文件當(dāng)中。
>> writematrix(a,"w_data.csv")
使用wps查看器查看w_data.csv:
(3)保存xlsx文本文件
>> writematrix(a,"w_data.xlsx")
使用wps查看器查看w_data.xlsx:
注:暫不支持.xls文件格式的導(dǎo)出操作,excel推薦使用.xlsx的導(dǎo)出文件格式。
2.2 使用界面操作
在工作區(qū)中使用鼠標(biāo)左鍵選中要保存的數(shù)據(jù),點(diǎn)擊鼠標(biāo)右鍵,會(huì)彈出操作框,點(diǎn)擊“導(dǎo)出變量”即可。該方式僅支持”.xlsx”格式文件的導(dǎo)出。
由于北太天元發(fā)布的開(kāi)發(fā)的插件的SDK是使用GCC編譯器生成的,不支持微軟編譯器的使用,在Windows平臺(tái)下必須部署對(duì)應(yīng)的 GCC 編譯器開(kāi)發(fā)環(huán)境才能開(kāi)展 c/c++ 插件的開(kāi)發(fā)工作。
我們可以采用基于MSYS2的MinGW-w64 GCC搭建Windows下C++開(kāi)發(fā)環(huán)境。
MSYS2是仿Linux的終端交互環(huán)境,可以使用Linux下的終端命令和快捷方式,自帶pacman軟件管理包,讓您將精力放到C++代碼的編寫(xiě)上,而不是復(fù)雜的依賴環(huán)境的搭建和編譯,可以復(fù)用自己在Linux下的開(kāi)發(fā)經(jīng)驗(yàn)。使用g++進(jìn)行庫(kù)的鏈接、源碼編譯等操作,可更進(jìn)一步了解C++代碼的編譯過(guò)程。
綠色便攜版本的 MSYS2 + MinGW64 開(kāi)發(fā)環(huán)境包傳送陣如下:
北太天元v3.6.1及其之前的軟件版本可以使用以下綠色環(huán)境:
鏈接: https://pan.baidu.com/s/15KEJ_CZpEjNo_hQ7JIuAeQ
提取碼: 5361
北太天元v3.6.0-dev(開(kāi)發(fā)預(yù)覽版)及其之后的軟件正式或預(yù)覽版本將使用以下綠色環(huán)境:
鏈接:https://pan.baidu.com/s/12eAGnIMv78ZzoY-G6aKUrw
提取碼:oeil
將編譯生成的插件拷貝至baltamatica安裝路徑下對(duì)應(yīng)的插件位置后,即可使用CLion來(lái)進(jìn)行調(diào)試。
1. windows系統(tǒng)
使用CLion調(diào)試代碼的配置步驟
(1)點(diǎn)擊CLion菜單欄中的“運(yùn)行-編輯配置”
或
(2)配置插件的配置項(xiàng):可執(zhí)行文件及環(huán)境變量
可執(zhí)行文件選擇安裝路徑下的可執(zhí)行文件如:
D:\baltamatica\lib\baltamatica.exe
將其中D:\baltamatica替換為自己的baltam安裝路徑。
環(huán)境變量配置如下:
Path中增加baltam安裝路徑的bin及l(fā)ib:
D:\baltamatica\bin;D:\baltamatica\lib;
增加其他環(huán)境變量:
BALTAM_CONFIG_M=D:\baltamatica\config\config.m BALTAM_FRONTEND=D:\baltamatica\lib\libbaio_qt.dll BALTAM_GNUPLOT=D:\baltamatica\share\gnuplot\gnuplot.exe BALTAM_TABLE_FOR_FUNCTION=D:\baltamatica\config\table_for_function.csv QT_PLUGIN_PATH=D:\baltamatica\qtplugins BALTAM_PLUGIN_PATH=D:\baltamatica
點(diǎn)擊確定。
(3)使用CLion的調(diào)試工具進(jìn)行調(diào)試
2. Ubuntu系統(tǒng)
使用CLion調(diào)試代碼的配置步驟
(1)點(diǎn)擊CLion菜單欄中的“運(yùn)行-編輯配置”
或
(2)配置baltam_builtin的配置項(xiàng):可執(zhí)行文件及環(huán)境變量
可執(zhí)行文件選擇安裝路徑下的可執(zhí)行文件如:
/opt/Baltamatica/bin/baltamatica
將其中/opt/Baltamatica替換為自己的baltam安裝路徑。
環(huán)境變量配置如下:
Path中增加baltam安裝路徑的bin:
/opt/Baltamatica/bin
增加其他環(huán)境變量:
BALTAM_PATH=/opt/Baltamatica LD_LIBRARY_PATH=/opt/Baltamatica/lib BALTAM_CONFIG_M=/opt/Baltamatica/opt/Baltamatica/lib BALTAM_FRONTEND=/opt/Baltamatica/lib/libbaio_qt.so BALTAM_TABLE_FOR_FUNCTION=/opt/Baltamatica/config/table_for_function.csv QT_QPA_PLATFORM_PLUGIN_PATH=/opt/Baltamatica/lib/platforms BALTAM_PLUGIN_PATH=/opt/Baltamatica
點(diǎn)擊確定。
(3)使用CLion的調(diào)試工具進(jìn)行調(diào)試