| 北太天元科學計算與系統(tǒng)仿真軟件 | v4.1 | 20250527 |
新增面向?qū)ο缶幊坦δ埽?/p>
Dependent:從屬屬性
Constant:常量屬性
支持如下屬性特性
支持定義屬性 get 和 set 方法
新增對持久變量的支持
try - catch 新增一個用法,現(xiàn)在可以不寫 catch 塊的內(nèi)容,含義為執(zhí)行 try 的內(nèi)容,如果出錯就忽略剩余內(nèi)容,繼續(xù)執(zhí)行后面的語句。
try
b = sin('a'); % 運行到此處出錯,會執(zhí)行第 5 行的內(nèi)容
b = 1;
end
disp('hello');| 函數(shù)名 | 函數(shù)說明 |
| evalc | 對字符串表達式求值,并捕捉表達式輸出結(jié)果 |
| properties | 獲取類的屬性名 |
| methods | 類方法名稱 |
| superclasses | 超類名稱 |
| isprop | 確定屬性是否由對象定義 |
| ismethod | 確定對象是否具有指定的方法 |
| tcpclient | 創(chuàng)建與 TCP/IP 服務(wù)器的 TCP/IP 客戶端連接 |
| tcpclientfind | 查找 TCP/IP 連接 |
| echotcpip | 啟動或停止 TCP/IP 回顯服務(wù)器 |
| tcpserver | 創(chuàng)建 TCP/IP 服務(wù)器 |
| tcpserverfind | 查找 TCP/IP 服務(wù)器 |
| echoudp | udp 回顯服務(wù)器 |
| udpportfind | 查找所有 udp 連接 |
| udpport | 創(chuàng)建 udp 連接 |
| xlsread | 讀取電子表格文件 |
| textscan | 從文本文件或字符串讀取格式化數(shù)據(jù) |
| h5read | 從 HDF5 數(shù)據(jù)集讀取數(shù)據(jù) |
| qz | 廣義特征值的廣義舒爾 (QZ) 分解 |
| ordqz | 在 QZ 分解中將特征值重新排序 |
注:更詳細的函數(shù)使用說明請參考幫助文檔。
支持香港手機號碼注冊登陸
新增數(shù)據(jù)類型timetable 在工作區(qū)的展示
支持類屬性在工作區(qū)的修改及高亮
支持以編程方式開發(fā) App。
| 函數(shù) | 描述 |
| uifigure | 創(chuàng)建用于設(shè)計 App 的圖窗 |
| uiprogressdlg | 創(chuàng)建進度對話框 |
| uialert | 顯示警報對話框 |
| uiaxes | 為 App 中的繪圖創(chuàng)建 UI 坐標區(qū) |
| uiopen | 打開文件選擇對話框并將選定的文件加載到工作區(qū)中 |
| uimenu | 創(chuàng)建菜單或菜單項 |
| uitable | 創(chuàng)建表用戶界面組件 |
| uilablel | 創(chuàng)建標簽組件 |
| uibutton | 創(chuàng)建普通按鈕 |
| uidropdown | 創(chuàng)建下拉組件 |
| uilistbox | 創(chuàng)建列表框組件 |
| uieditfield | 創(chuàng)建文本或數(shù)值編輯字段組件 |
| uigetdir | 打開文件夾選擇對話框 |
| 函數(shù) | 描述 |
| detectdrift | 基于置換檢驗檢測基準數(shù)據(jù)與目標數(shù)據(jù)間的分布漂移 |
| histfit | 具有分布擬合的直方圖 |
| mle | 最大似然估計 |
| makedist | 創(chuàng)建概率分布對象 |
| fitdist | 對數(shù)據(jù)進行概率分布對象擬合 |
| probplot | 繪制概率圖 |
| qqplot | Quantile-quantile圖 |
| proflik | 概率分布的輪廓似然函數(shù) |
| runstest | 隨機性檢驗 |
| hmcSampler | 哈密爾頓蒙特卡洛采樣器 |
| BinomialDistribution | 二項分布 |
| MultinomialDistribution | 多項分布 |
| NegativeBinomialDistribution | 負二項分布 |
| PoissonDistribution | 泊松分布 |
| BetaDistribution | beta 分布 |
| BirnbaumSaundersDistribution | 伯恩鮑姆-桑德斯分布 |
| BurrDistribution | 伯爾 XII 型分布 |
| ExponentialDistribution | 指數(shù)分布 |
| ExtremeValueDistribution | 極值分布 |
| GammaDistribution | gamma 分布 |
| GeneralizedExtremeValueDistribution | 廣義極值分布 |
| GeneralizedParetoDistribution | 廣義帕累托分布 |
| paretotails | 帕累托分布 |
| HalfNormalDistribution | 半正態(tài)分布 |
| InverseGaussianDistribution | 逆高斯分布 |
| KernelDistribution | 核分布 |
| LogisticDistribution | 邏輯分布 |
| LoglogisticDistribution | 對數(shù)邏輯分布 |
| LognormalDistribution | 對數(shù)正態(tài)分布 |
| LoguniformDistribution | 對數(shù)均勻分布 |
| NakagamiDistribution | Nakagami 分布 |
| NormalDistribution | 正態(tài)分布 |
| PiecewiseLinearDistribution | 分段線性分布 |
| RayleighDistribution | 瑞利分布 |
| RicianDistribution | 萊斯分布 |
| StableDistribution | 穩(wěn)定分布 |
| tLocationScaleDistribution | t 位置尺度分布 |
| TriangularDistribution | 三角分布 |
| UniformDistribution | 均勻分布(連續(xù)) |
| WeibullDistribution | 威布爾分布 |
新增函數(shù)
| 函數(shù) | 描述 |
| mopso | 多目標粒子群算法 |
| vega | 向量化遺傳算法 |
函數(shù)新增算法
| 函數(shù) | 新增功能 |
| gamultiobj | 新增NSGA MOGA算法 |
| 函數(shù) | 描述 |
| icare | 連續(xù)時間代數(shù)Riccati方程的隱式求解器 |
| idare | 離散時間代數(shù)Riccati方程的隱式求解器 |
| lyap | 求解離散時間李雅普諾夫方程 |
| lqg | 線性二次高斯控制設(shè)計 |
| lqgreg | 構(gòu)建線性二次高斯調(diào)節(jié)器 |
| lqi | 線性二次積分控制 |
| lqr | 線性二次調(diào)節(jié)器設(shè)計 |
| kalman | 卡爾曼濾波 |
| h2syn | h2控制器綜合 |
新增如下功能:
鎖定的試驗平均值或事件相關(guān)電位數(shù)據(jù)處理及可視化
對單通道事件相關(guān)數(shù)據(jù)的多個epoch進行時間/頻率分析
導入Neuroscan文件的輔助功能函數(shù)
| 模塊 | 分類 | 功能 |
| sFunction | userDefinedFuncs | 支持用戶通過level-1 m或c模板實現(xiàn)自定義模塊功能 |
| 模塊 | 分類 | 功能 |
| Generate Run Script | AerospaceToolbox\Flightgear | 生成FlightGear運行腳本模塊 |
| Pack net_fdm Packet for FlightGear | AerospaceToolbox\Flightgear | 生成FlightGear的net_fdm數(shù)據(jù)包 |
| Receive net_ctrl Packet from FlightGear | AerospaceToolbox\Flightgear | 從FlightGear接收net_ctrl數(shù)據(jù) |
| Send net_fdm Packet to FlightGear | AerospaceToolbox\Flightgear | 將net_fdm數(shù)據(jù)包傳輸?shù)侥繕薎P地址和端口的FlightGear中 |
| Simulation Pace | AerospaceToolbox\Flightgear | 設(shè)置仿真速率 |
| Unpack net_ctrl Packet from FlightGear | AerospaceToolbox\Flightgear | 解碼從FlighGear接收到的net_ctrl數(shù)據(jù)包 |
| WGS84 Gravity Model | AerospaceToolbox\Flightgear | 實現(xiàn)1984年世界大地測量系統(tǒng)(WGS84)地球重力的表示 |
| 6DOF (Euler Angles) | AerospaceToolbox\Flightgear | 實現(xiàn)六自由度運動方程的歐拉角表示 |
| 6DOF ECEF (Quaternion) | AerospaceToolbox\Flightgear | 在地心地固(ECEF)坐標系中實現(xiàn)六自由度運動方程的四元數(shù)表示 |
| 6DOF Wind (Quaternion) | AerospaceToolbox\Flightgear | 實現(xiàn)相對于風軸的六自由度運動方程的四元數(shù)表示 |
| 6DOF Wind (Wind Angles) | AerospaceToolbox\Flightgear | 實現(xiàn)六自由度運動方程的風向角表示 |
| 1D Controller A(v) B(v) C(v) D(v) | AerospaceToolbox\Flightgear | 實現(xiàn)基于一個調(diào)度參數(shù)的增益調(diào)度狀態(tài)空間控制器 |
| 1D Observer Form A(v) B(v) C(v) F(v) H(v) | AerospaceToolbox\Flightgear | 實現(xiàn)基于一個調(diào)度參數(shù)的增益調(diào)度狀態(tài)空間控制器(以觀測器形式) |
| 2D Controller A(v) B(v) C(v) D(v) | AerospaceToolbox\Flightgear | 實現(xiàn)基于兩個調(diào)度參數(shù)的增益調(diào)度狀態(tài)空間控制器 |
| Attitude Profile (Geographic Pointing) | AerospaceToolbox\Flightgear | 計算最短四元數(shù)旋轉(zhuǎn) |
| ECI Position to AER | AerospaceToolbox\Flightgear | 將地心慣性(ECI)坐標轉(zhuǎn)換為方位角坐標 |
| ECI Position to LLA | AerospaceToolbox\Flightgear | 將地心慣性(ECI)坐標轉(zhuǎn)換為大地緯度、經(jīng)度和高度(LLA)坐標 |
| Geodetic to Geocentric Latitude | AerospaceToolbox\Flightgear | 使用大地緯度和橢球高度將大地緯度轉(zhuǎn)換為地心緯度和從行星中心到重心的任意半徑 |
| LLA to ECI Position | AerospaceToolbox\Flightgear | 將大地緯度、經(jīng)度、高度(LLA)坐標轉(zhuǎn)換為地心慣性(ECI)坐標 |
支持基礎(chǔ)狀態(tài)建模:
支持狀態(tài)定義:狀態(tài)名稱、狀態(tài)入口、執(zhí)行和退出的關(guān)鍵字(en、du、ex、entry、during、exit)
狀態(tài)轉(zhuǎn)移功能:動作、條件、時間事件;支持邏輯運算和函數(shù)調(diào)用
變量區(qū)功能:支持輸入、輸出、局部變量;
時間事件函數(shù):before、after、at、every、temporalCount、elapsed、count、duration;
狀態(tài)、事件關(guān)鍵字檢查和語法檢查
支持m語法
| 函數(shù) | 描述 |
| AILoadChat | 加載歷史的對話信息 |
| AIInit | 該函數(shù)根據(jù)用戶指定的參數(shù)初始化人工智能設(shè)置。 |
| AIChat | 使用智能問答系統(tǒng)對用戶的提問進行回答。 |
| AISetParams | 修改模型的參數(shù) |
?持創(chuàng)建 python 根對象、?持調(diào)?python函數(shù)、?持disp(變量名)展?詳細信息、?持在當前環(huán)境安裝python包、?持設(shè)置和切換指定的python虛擬環(huán)境。
| 函數(shù) | 描述 |
| pipcmd | 使用 pip 在當前環(huán)境進行Python包管理 |
| pyenv | 查看Python環(huán)境 |
| pyroot | 獲取 Python 插件根對象用于調(diào)用 Python 函數(shù) |
| 函數(shù) | 描述 |
| sym | 函數(shù)創(chuàng)建符號變量或表達式 |
| syms | 函數(shù)創(chuàng)建多個符號變量或表達式 |
| simplify | 函數(shù)簡化符號表達式 |
| taylor | 求表達式的泰勒級數(shù) |
| limit | 符號表達式的極限 |
| int | 求不定積分或定積分 |
| symdiff | 求表達式的導數(shù)或偏導數(shù) |
| 函數(shù)名 | 函數(shù)說明 |
| bctree | 圖的塊割點樹 |
| allpaths | 用于計算圖中從指定源節(jié)點到目標節(jié)點的所有路徑 |
| minspantree | 用于計算無向圖的最小生成樹 |
| hascycles | 用于檢測給定圖是否包含回路 |
| allcycles | 用于提取圖中所有回路 |
| cyclebasis | 用于提取圖的基本圈 |
| graphneighbors | 返回圖節(jié)點的相鄰節(jié)點 |
| predecessors | 獲取指定節(jié)點的前繼節(jié)點 |
| successors | 獲取指定節(jié)點的后繼節(jié)點 |
try catch 使用方式更靈活,關(guān)鍵字后不必接逗號即可正常使用。catch 語句不接逗號時,具體行為如下:
緊跟著一個變量名,那么該變量名將會被識別為異常對象
其他情形,那么該語句會被識別為普通的可執(zhí)行語句,不生成表示異常的對象(在之前的版本中,這樣使用會出錯或報告警告)
global 被實現(xiàn)為關(guān)鍵字,在舊版本中它是內(nèi)置函數(shù)。語法為:
global var1 var2 ...
因此,
global('var1')這類語法將不再支持。除以上修改外,全局變量的使用機制未做更改。
規(guī)范函數(shù)定義語法。在之前的天元中,函數(shù)定義語句的入?yún)⒑统鰠⒖梢詾槿我獗磉_式。例如:
function myfun(a(1), b, c.d) end
現(xiàn)在解釋器增加如下規(guī)范:
輸入?yún)?shù):只能是變量名或 ~(占位符)
輸出參數(shù):只能是變量名
語法檢查變得更嚴格,變量名不符合規(guī)則會報錯。
改進命令語法對逗號的處理。舊版命令語法中,逗號 , 被無條件視為是一句命令語法的結(jié)束,現(xiàn)在做出如下調(diào)整:
逗號前左右括號數(shù)量相等,那么視為語句結(jié)束
逗號前左右括號數(shù)量不等,那么視為文本參數(shù)
括號不區(qū)分種類,例如 (] 也視為括號數(shù)量相等
舉例:
disp a(1,2) % 輸出 a(1,2),之前的版本會報錯括號不匹配 disp a,b % 輸出 a,然后輸出 b 的內(nèi)容 disp a)(,) % 語法錯誤,最后面的 ) 沒有對應(yīng)的 (
在 M 函數(shù)中使用靜態(tài)的方式掃描變量名(和代碼執(zhí)行順序無關(guān)),符號被識別為變量后(例如出現(xiàn)在賦值語句左側(cè),或是作為函數(shù)的輸入/輸出參數(shù)), 不可作為函數(shù)調(diào)用。例如如下代碼,舊版軟件會正常執(zhí)行,新版軟件會先將 sin 識別為變量,進而導致 a = sin(1) 執(zhí)行出錯。
function myfun a = sin(1); sin = 1; end
備注:
M 腳本、命令行語句不會進行靜態(tài)掃描,仍然遵循順序執(zhí)行邏輯,函數(shù)與變量可以自由切換
靜態(tài)掃描不會處理隱式創(chuàng)建的變量,例如 eval 函數(shù),load 載入的變量
如果后續(xù)使用 clear 清除與函數(shù)名同名的變量,那么變量會被還原為函數(shù)
匿名函數(shù)現(xiàn)在支持使用 nargin nargout
短路邏輯運算&& ||支持輸入為 char 類型的數(shù)據(jù)
北太天元軟件關(guān)閉時會自動卸載所有插件,這樣所有插件的 bxPluginFini 函數(shù)會被自動觸發(fā)
| 函數(shù)名 | 優(yōu)化內(nèi)容 |
| eval, evalin | 當輸入是字面量時,優(yōu)化了反復調(diào)用的執(zhí)行效率 |
| str2func | 支持將靜態(tài)成員函數(shù)轉(zhuǎn)化為句柄,例如 str2func('myclass.sf') |
| svd | 支持指定以列向量的形式返回奇異值 |
| svds | 支持 double 數(shù)據(jù)類型 |
| datetime | 支持 'ConvertFrom' 參數(shù) |
| 三角函數(shù) | 支持稀疏矩陣 |
| cellfun, structfun | 支持 datetime 數(shù)據(jù)類型 |
| sum | 支持稀疏矩陣 |
| xor, &, | | 支持稀疏矩陣 |
| isequaln | 支持稀疏矩陣 |
| cast | 支持稀疏矩陣 |
| double | 支持稀疏矩陣 |
| dot | 支持高維數(shù)組 |
| conj | 支持處理邏輯數(shù)組 |
| rand, randn, randi | 支持 'like' 參數(shù) |
| bicg, bicgstab, bicgstabl, cgs, gmres | 增加對非方陣、非列向量等非法類型的驗證判斷 |
| cumsum, cumprod | 實現(xiàn)溢出加法、溢出乘法 |
注:更詳細的函數(shù)使用說明請參考幫助文檔。
輸入框和文本搜索框優(yōu)化,增加統(tǒng)一樣式的右鍵菜單
優(yōu)化tooltips顯示
優(yōu)化窗口陰影顯示
| 函數(shù) | 描述 |
| randg | 支持 'like' 參數(shù) |
以下函數(shù)使用面向?qū)ο蠓椒ㄖ貥?gòu)
| 函數(shù) | 描述 |
| dss | 描述性ss的模型 |
| pid | pid控制器 |
| pidstd | 標準結(jié)構(gòu)的pid控制器 |
| filt | DSP格式的離散傳遞函數(shù) |
| rss | 隨機連續(xù)傳遞函數(shù) |
| drss | 隨機離散傳遞函數(shù) |
| sparss | 解析狀態(tài)空間模型 |
| sparssdata | 提取狀態(tài)空間模型參數(shù) |
| step | 階躍響應(yīng) |
| impulse | 脈沖響應(yīng) |
| lsim | 給定輸入的系統(tǒng)響應(yīng) |
| isct | 判斷模型是否連續(xù) |
| isdt | 判斷系統(tǒng)是否離散 |
| isempty | 判斷系統(tǒng)是否為空 |
| isfinite | 判斷系統(tǒng)參數(shù)為無窮 |
| isproper | 判斷模型是否合理 |
| isreal | 判斷模型參數(shù)是否為實數(shù) |
| issiso | 判斷系統(tǒng)是否為單輸入單輸出 |
| isstable | 判斷系統(tǒng)是否穩(wěn)定 |
| isstatic | 判斷系統(tǒng)是靜態(tài)還是動態(tài) |
| order | 模型階次 |
| ndims | 模型維度 |
| size | 模型輸入和輸出維度 |
| bodemag | bode幅值圖 |
| norm | 模型范數(shù) |
| damp | 模型阻尼和固有頻率 |
| pzmap | 極點和零點圖 |
| piddata | PID控制器參數(shù) |
| stepinfo | 階躍信息 |
| lsiminfo | 仿真信息 |
| ctrb | 計算可控性矩陣 |
| ctrbf | 可控性梯形形式 |
| get | 獲取模型屬性值 |
| obsv | 計算可觀測性矩陣 |
| obsvf | 可觀測性梯形形式 |
| pole | 系統(tǒng)極點 |
| set | 設(shè)置模型屬性值 |
| ss | 創(chuàng)建狀態(tài)空間模型 |
| ssdata | 獲取狀態(tài)空間模型數(shù)據(jù) |
| tf | 創(chuàng)建傳遞函數(shù)模型 |
| tfdata | 獲取傳遞函數(shù)模型數(shù)據(jù) |
| zero | 系統(tǒng)零點 |
| zpk | 創(chuàng)建零極點增益模型 |
| zpkdata | 獲取零極點增益模型數(shù)據(jù) |
支持包含matlab function和虛擬子系統(tǒng)的simulink模型導入真元。
支持model-exchange模型導入(fmi協(xié)議1.0/2.0/3.0)。
新增co-simulation模型導入的fmi協(xié)議1.0/3.0支持。
完善了.poscar文件類型光子晶體的種類。
取下標/賦值
修復了 a(1) = b(2) 不會輸出到命令行的問題
現(xiàn)在對于取下標語句,只能指定 1 個輸出,使用兩個以上輸出會報錯,例如 [x, y] = A(1) 當 A 是一個變量時會報錯
解決了一個 {end} 在嵌套結(jié)構(gòu)中會報錯的問題
面向?qū)ο?/p>
解決了某些情況下超類構(gòu)造函數(shù)重復調(diào)用或沒有調(diào)用的問題
取值為枚舉值的各特性現(xiàn)在可以使用字符向量指定,例如 Access = 'public'
類定義文件中的局部函數(shù)現(xiàn)在可以訪問類的私有/保護成員
修復在子類重寫方法后,在父類無法調(diào)用該方法的問題
修復了在其他類內(nèi)調(diào)用類 A 的構(gòu)造函數(shù),類 A 超類的 protected 構(gòu)造函數(shù)無法調(diào)用的問題
矩陣構(gòu)造與運算
解決了 ~ ^ 等符號在使用空格分隔的矩陣數(shù)組時解析錯誤的問題
函數(shù)句柄/匿名函數(shù)
解決了一個將具名函數(shù)句柄賦值給另一普通函數(shù)名后,生成語法不正確的問題。舉例:
cos = @sin; a = cos;
這里
cos是內(nèi)置函數(shù),之前的版本將
a = cos識別成了函數(shù)調(diào)用(實際應(yīng)為變量賦值)
解決了匿名函數(shù)體沒有用到參數(shù)時,輸入實參不足會報錯的問題。例如:
fh = @(x) 1; fh() % 返回 1,舊版會提示輸入?yún)?shù)不足
修復了匿名函數(shù)轉(zhuǎn)字符串可能會有額外括號的問題
解決了靜態(tài)方法取函數(shù)句柄時,輸出參數(shù)未被正確設(shè)置的問題
| 函數(shù)名 | 修復內(nèi)容 |
| dot | 修復輸入空矩陣時閃退的問題 |
| tensorprod | 修復傳入 all 參數(shù)時,返回值類型有誤的問題 |
| quadgk | 修復變量范圍相等時無法計算的問題 |
| orth | 修復非法輸入時報錯不準的問題 |
| interp1q | 修復輸入稀疏矩陣時異常報錯的問題 |
| xlsread | 修復無法正確讀取 xlsx 文件中日期單元格的問題 |
| fscanf | 修復以 %c 形式讀取時閃退,且不支持指定讀取寬度的問題 |
| bitand | 修復未指定 assumedtype 時結(jié)果錯誤的問題 |
| bitshift | 修復指定位數(shù)超過數(shù)據(jù)位數(shù)時存在結(jié)果錯誤的問題 |
| bitset | 修復輸入數(shù)組存在空時返回維度錯誤的問題;修復指定位數(shù)為標志位時存在結(jié)果錯誤的問題 |
| bitget | 修復指定位數(shù)超過 int32 時存在結(jié)果錯誤的問題 |
| readmatrix | 修復讀取單列或單行 xls 文件時返回為空,無法跳過空行空列和標題行的問題 |
| timetable | 修復只指定行時間時報錯的問題 |
| ismissing | 修復輸入字符串數(shù)組中含有 nan 時,計算錯誤的問題 |
| regexp | 修復輸入空字符串時閃退的問題 |
| insertBefore | 修復未處理空字符向量的問題 |
| strcat | 修復不能處理空數(shù)組的問題 |
| strrep | 修復不支持參數(shù)指定為空字符串的問題 |
| strsplit | 修復不能處理空輸入的問題 |
| deblank | 修復不能處理以 '\0' 結(jié)尾字符串的問題 |
| extractAfter | 修復第二個參數(shù)不能指定為空輸入的問題 |
| replaceBetween | 修復開始文本模式和終止文本模式不能同時指定為空的問題 |
| any | 修復輸入空稀疏矩陣時計算不正確的問題 |
| writematrix | 修復不能正確處理制表符的問題 |
| 并置 | 修復 char 和復數(shù)并置未報錯,與小數(shù)并置結(jié)果有誤的問題 |
注:更詳細的函數(shù)使用說明請參考幫助文檔。
| 模塊 | 分類 | 功能 |
| integratorLimited | continuous | 修復外部x0不起效導致計算錯誤的問題 |
| integratorWraped | continuous | 修復外部x0不起效導致計算錯誤的問題 |
內(nèi)核
常量屬性默認值不能使用其它常量屬性的值,會閃退
