新增函数调试功能,在快捷工具栏调试按钮下拉菜单中输入参数以调试函数;
新增编辑器快捷操作 Ctrl + 鼠标滚轮、Ctrl + +/- 键,以快速缩放编辑器字体大小;
新增全局搜索,搜索范围为编辑器已打开文件中的文本、工作区变量、当前活动目录下的文件、帮助文档;
新增等宽字体为编辑器默认字体。
实现了 BP 文件,即加密脚本。可用 bpcode 函数将 M 脚本创建为加密脚本。
clim: 设置颜色图范围;
bubblechart3:三维气泡图;
imagesc:使用缩放颜色显示图像;
ishold:当前保留状态;
hot:hot 颜色图数组;
cool:冷色颜色图数组;
spring:Spring 颜色图数组;
summer:Summer 颜色图数组;
autumn:autumn 颜色图数组;
winter:Winter 颜色图数组;
gray:gray 颜色图数组;
parula:parula 颜色图数组;
turbo:Turbo 颜色图数组;
hsv:HSV 颜色图数组;
bone:bone 颜色图数组;
copper:copper 颜色图数组;
pink:粉色颜色图数组;
jet:Jet 颜色图数组;
fill3:创建三维填充补片;
bar3:三维条形图;
bar3h:水平三维条形图;
bubblelim:将气泡大小映射到数据范围;
stem3:绘制三维离散序列数据;
polaraxes:创建极坐标区;
image:从数组显示图像;
feather:创建以 x 轴为起点的箭头;
barh:水平直方图;
polarplot:在极坐标中绘制线条;
polarscatter:极坐标中的散点图;
polarhistogram:极坐标中的直方图;
compass:从原点发射出的箭头;
swarmchart:群散点图;
rlim:设置或查询极坐标区的 r 坐标轴范围;
thetalim:设置或查询极坐标区的 theta 坐标轴范围;
rticks:设置或查询 r 轴刻度值;
contour3:三维等高线图;
swarmchart3:三维群散点图;
morebins:增加直方图的 bin 数量;
fewerbins:减少直方图 bin 数量;
quiver3:三维箭头图或向量图;
thetaticks:设置或查询 theta 轴刻度值;
contourc:低级等高线矩阵计算。
pagemtimes: 按页矩阵乘法;
pagemldivide:逐页左矩阵除法;
pagemrdivide:逐页右矩阵除法;
pagetranspose:按页转置;
pagectranspose:按页复共轭转置;
residue:部分分式展开(部分分式分解);
conv:卷积和多项式乘法;
deconv:去卷积和多项式除法;
filter:1 维数字滤波器;
conv2:二维卷积;
convn:N 维卷积;
erfcx:换算补余误差函数;
resi2:多重极点的残数;
mpoles:识别重复的极点及其重数;
fixparent:修改父节点向量的排列顺序;
isequaln:测试数组相等性,将 NaN 值视为相等;
sprandsym:稀疏对称随机矩阵;
spfun:将函数应用于非零稀疏矩阵元素;
spy:可视化矩阵的稀疏模式;
sprank:结构秩;
spaugment:构造最小二乘增广方程组;
etreeplot:绘制消去树;
treelayout:设置树或森林的布局;
treeplot:绘制树形图;
gplot:绘制邻接矩阵中的节点和边;
unmesh:将边矩阵转换为坐标和拉普拉斯矩阵;
rjr:随机雅可比旋转;
ordeig:拟三角矩阵的特征值;
ordschur:在 Schur 分解中将特征值重新排序;
hess:矩阵的 Hessenberg 形式;
schur:Schur 分解;
cdf2rdf:将复数对角型转换为实数块对角型;
cholupdate:Cholesky 分解的秩 1 更新;
qrupdate:QR 分解的秩 1 更新;
sqrtm:矩阵平方根;
expm:矩阵指数;
interp1:一维数据插值(表查找);
interpn:ndgrid 格式的一维、二维、三维和 N 维网格数据的插值;
pchip:分段三次 Hermite 插值多项式 (PCHIP);
makima:修正 Akima 分段三次 Hermite 插值;
spline:三次样条数据插值;
ppval:计算分段多项式;
unmkpp:提取分段多项式详细信息;
padecoef:时滞的 Padé 逼近;
interpft:一维插值(FFT 方法);
ndgrid:N 维空间中的矩形网格;
chckxywp:检查和调整输入;
chckxy:chckxywp的简化版本,但二者输出格式不同;
inpolygon:位于多边形区域边缘内部或边缘上的点;
polyarea:多边形的面积;
rectint:矩形交叉区域;
tsearchn:N 维最近单纯形搜索法;
gradient:数值梯度;
pwch:分段三次埃尔米特插值;
filter2:二维数字滤波器;
pageinv:逐页矩阵逆;
pagesvd:逐页奇异值分解;
del2:离散拉普拉斯算子;
sylvester:求解关于 X 的 Sylvester 方程 AX + XB = C;
funm:计算常规矩阵函数;
gsvd:广义奇异值分解;
logm:矩阵对数;
svdsketch:计算低秩矩阵草图的 SVD;
lscov:存在已知协方差情况下的最小二乘解;
mx_computeQuasiRand:计算准随机数。
cat:串联数组;
freqspace:频率响应的频率间距;
issortedrows:确定矩阵或表的行是否已排序;
circshift:循环平移数组;
squeeze:删除长度为 1 的维度;
cell2mat:将元胞数组转换为基础数据类型的普通数组;
mat2cell:将数组转换为在元胞中包含子数组的元胞数组;
cellfun:对元胞数组中的每个元胞应用函数;
func2str:基于函数句柄构造字符向量;
str2func:根据字符向量构造函数句柄;
localfunctions:北太天元文件中所有局部函数的函数句柄;
append:合并字符串;
convertCharsToStrings:将字符数组转换为字符串数组,其他数组不变;
convertContainedStringsToChars:在元胞数组或结构体的任何级别转换字符串数组;
replaceBetween:替换起点和终点之间的子字符串;
strrep:查找并替换子字符串;
contains:确定字符串中是否有模式;
ismembertol:容差范围内的集合成员;
uniquetol:容差内的唯一值;
bitand:按位 AND;
bitor:按位 OR;
bitxor:按位 XOR;
bitcmp:按位补码;
bitget:获取指定位置的位;
bitset:设置指定位置的位;
bitshift:将位移动指定位数;
union:设置两个数组的并集;
strsplit:在指定分隔符处拆分字符串或字符向量;
strtok:所选的字符串部分;
extract:从字符串中提取子字符串;
extractAfter:提取指定位置后的子字符串;
extractBefore:提取指定位置前的子字符串;
extractBetween:提取起点和终点之间的子字符串;
erase:删除字符串内的子字符串;
eraseBetween:删除起点和终点之间的子字符串;
insertAfter:在指定的子字符串后插入字符串;
insertBefore:在指定的子字符串前插入字符串;
pad:为字符串添加前导或尾随字符;
reverse:反转字符串中的字符顺序;
strtrim:从字符串中删除前导和尾随空白;
strjust:对齐字符串;
underlyingType:确定数组行为的基础数据的类型;
int2str:将整数转换为字符;
str2num:将字符数组或字符串转换为数值数组;
base2dec:将以 n 为基数的整数的文本表示转换为双精度值;
bin2dec:将二进制整数的文本表示转换为双精度值;
dec2base:将十进制整数转换为其 n 进制表示形式;
dec2bin:将十进制整数转换为其二进制表示形式;
dec2hex:将十进制整数转换为其十六进制表示形式;
hex2dec:将十六进制整数的文本表示转换为双精度值;
hex2num:将 IEEE 十六进制格式转换为双精度数;
num2hex:将单精度数和双精度数转换为 IEEE 十六进制格式;
swapbytes:交换字节顺序;
orderfields:结构体数组的顺序字段;
width:表的变量数;
height:表行数;
anymissing:是否有缺失值;
strncmp:比较字符串的前 n 个字符(区分大小写);
strncmpi:比较字符串的前 n 个字符(不区分大小写);
strip:删除字符串中的前导和尾部字符;
strjoin:联接数组中的字符串;
isUnderlyingType:确定输入是否有指定的基础数据类型;
intmax:特定整数类型的最大值;
intmin:特定整数类型的最小值;
pause:暂停程序,等待用户回应。
isoutlier:查找数据中的离群值;
filloutliers:检测并替换数据中的离群值;
rmoutliers:检测并删除数据中的离群值;
movmad:移动中位数绝对偏差;
islocalmin:计算局部最小值;
islocalmax:计算局部最大值;
smoothdata:对含噪数据进行平滑处理;
mink:计算数组的 k 个最小元素;
maxk:计算数组的 k 个最大元素;
bounds:数组的最小值和最大值;
mode:数组中出现次数最多的值;
rms:均方根值;
movmax:移动最大值;
movmean:移动均值;
movmedian:移动中位数;
movmin:移动最小值;
movprod:移动乘积;
movstd:移动标准差;
movvar:移动方差;
movsum:移动总和;
normalize:归一化数据;
rmmissing:删除缺失的条目;
fillmissing:填充缺失值;
xcorr:互相关;
xcov:互协方差;
detrend:去除多项式趋势。
mustBePositive:验证值为正;
mustBeNonpositive:验证值为非正;
mustBeNonnegative:验证值为非负值;
mustBeNegative:验证值为负值;
mustBeFinite:验证值是有限值;
mustBeNonNan:验证值不是 NaN;
mustBeNonzero:验证值为非零;
mustBeNonsparse:验证值为非稀疏值;
mustBeReal:验证值是实数;
mustBeInteger:验证值为整数;
mustBeNonmissing:验证值未缺失;
mustBeGreaterThan:验证值大于另一个值;
mustBeLessThan:验证值小于另一个值;
mustBeGreaterThanOrEqual:验证值大于等于另一个值;
mustBeLessThanOrEqual:验证值小于等于另一个值;
mustBeA:验证值来自指定的类之一;
mustBeNumeric:验证值为数值;
mustBeNumericOrLogical:验证值为数值或逻辑值;
mustBeFloat:验证值是浮点数组;
mustBeText:验证值是字符串数组、字符向量或字符向量元胞数组;
mustBeTextScalar:验证值是一段文本;
mustBeNonzeroLengthText:验证值为非零长度的文本;
mustBeUnderlyingType:验证值具有指定的基础类型;
mustBeNonempty:验证值为非空;
mustBeScalarOrEmpty:验证值是标量或为空;
mustBeVector:验证值为向量;
mustBeMember:验证值是指定集的成员;
mustBeInRange:验证值在指定范围内;
mustBeFile:验证路径指向文件;
mustBeFolder:验证输入路径指向文件夹;
mustBeValidVariableName:验证输入名称是有效的变量名称;
mustBeDoubleVector:验证输入是具有非nan和有限值的严格双精度向量;
mustBeMemberCaseInsensitive:验证输入是否是给定集合的成员,不区分大小写;
mustBeIncreasing:验证输入是严格增加双精度;
mustBeDouble:验证输入是否为双精度;
isfile:确定输入是否为文件;
isfolder:确定输入是否为文件夹;
localfunctions:用于在 M 脚本或者 M 函数中调用,返回当前文件所有局部函数句柄;
narginchk:检查输入参数个数的合法性;
nargoutchk:检查输出参数个数的合法性。
resetoptions:重置选项;
infbound:对代码生成的无限边界支持;
optimwarmstart:创建热启动对象;
secondordercone:创建二阶锥约束;
SecondOrderConeConstraint:二阶锥约束对象。
ga:用遗传算法求函数的最小值;
gamultiobj:利用遗传算法求解多个适应度函数的Pareto前沿;
paretosearch:找出Pareto集合中的点;
particleswarm:粒子群优化;
patternsearch:使用模式搜索找到函数的最小值;
simulannealbnd:用模拟退火算法求函数的最小值;
surrogateopt:耗时目标函数全局最小化的代理优化;
packfcn:结合目标和非线性约束函数。
strips:带状图;
hampel:使用Hampel标识符去除异常值;
medfilt1:一维中值滤波;
sgolay:Savitzky-Golay滤波器设计;
sgolayfilt:Savitzky-Golay过滤;
chirp:扫描余弦;
diric:狄利克雷函数或周期sinc函数;
gauspuls:高斯调制正弦射频脉冲;
gmonopuls:高斯单脉冲;
rectpuls:采样的非周期性矩形;
sawtooth:锯齿波或三角波;
sinc:sinc 函数;
square:方波;
tripuls:采样的非周期三角形;
vco:压控振荡器;
buffer:将信号矢量缓冲成矩阵的数据帧;
demod:通信仿真解调;
modulate:通信仿真调制;
shiftdata:移动数据以在指定维度上操作;
unshiftdata:shiftdata的逆;
udecode:解码2n级量化整数输入到浮点输出;
uencode:将浮点输入量化并编码为整数输出;
marcumq:广义Marcum Q-函数;
meanfreq:平均频率;
medfreq:中值频率;
peak2peak:最大最小差;
peak2rms:峰值幅度比;
rssq:平方和的平方根水平;
alignsignals:通过延迟最早的信号来对齐两个信号;
cusum:使用累积和检测平均值的小变化;
dtw:使用动态时间规整的信号之间的距离;
edr:在实际信号上编辑距离;
finddelay:估计信号之间的延迟(秒);
findpeaks:求局部最大值;
binmask2sigroi:转换二进制掩码矩阵的ROI限制;
removesigroi:去除感兴趣的信号区域;
dutycycle:脉冲波形占空比;
midcross:双电平波形的中参考电平交叉;
statelevels:用直方图法对双电平波形进行状态估计;
overshoot:双电平波形转换的超调指标;
undershoot:双电平波形转换的欠冲指标;
enbw:等效噪声带宽;
filtic:转置直接 II 型滤波器实现的初始条件。
strips:带状图;
nanstd:计算标准差;
nanmean:计算均值;
ttest2:两个独立样本的t检验;
nanvar:计算方差;
vartest:单样本方差检验;
vartest2:方差相等的双样本 F 检验;
ztest:对单样本的 Z 检验;
chi2pval:卡方分布的 p 值函数;
fpval:F分布的 p 值函数;
adtest:Anderson-Darling拟合优度假设检验;
fishertest:Fisher 精确检验;
cdf:累积分布函数;
bisquare:bisquare函数;
cauchy:cauchy函数;
andrews:andrews函数;
checkInputName:检查输入的参数名称;
checkmonotonic:修改网格数据集,使其单调递增;
compactgridformat:检查输入是否为混合方向的向量;
evfit:极值数据的参数估计和置信区间;
fair:fair函数;
firstNonSingletonDim:返回第一个不为一的维度的索引;
huber:huber函数;
imposeextrapval:为域外的查询点设置外推值;
knt2mlt:对多重节点进行分析,返回其之前值与之相同的节点个数;
logistic:logistic函数;
makemonotonic:翻转网格坐标使其单调递增;
meshgridvectors:生成用于创建默认网格的矢量;
methodandextrapval:从参数中解析方法;
ols:ols函数;
jbMC:通过蒙特卡洛模拟获取 Jarque-Bera 检验的临界值和 p 值;
CVtbl:计算 JB test 的临界值表;
jbtest:复合正态分布的Jarque-Bera 假设检验;
prctile:求样本的百分位数;
range:返回样本范围;
statrobustwfun:得到鲁棒加权函数和调优常数;
statset:创建/修改STATS选项结构;
stripnansforspline:从输入数据集中剥离包含nan的列;
talwar:talwar函数;
welsch:welsch函数。
check_pdemodel:检查pde的结构体的设定是否满足求解的要求;
check_func:对一个函数句柄做初步的检查。检查它是否支持向量化,以及输出的维度是否正确;
createpde_FD:创建一个差分方法求解pde的结构体;
solvepde_FD:按 model 中的设定进行pde数值求解,并返回数值结果;
setpdeType:设定 pde 的类型;
setpdeTimestep:设定时间步长;
setpdeTimelist:设定需要数值求解的时间点,输入要求为正数数组;
setpdeRhs:设定方程的右端项;
setpdeInitial:设定方程的初始条件,设定初值之前需要先确定方程的求解区域;
setpdeGridnum:设定求解采用的网格数。调用此函数前,需要先确定求解区域;
setpdeCoef:设定方程中的系数,需要先设定方程的类型;
setpdeBoundary:设定方程的边界条件。设定边界之前需要先确定方程类型和求解区域。用户需自己保证边界条件的相容性;
setpdeArea:设定 pde 求解的区域;
FD_getmesh2D:产生二维的网格信息;
FD_getmesh1D:产生一维的网格信息;
FD_Boundary_solver2D:差分方法处理边界条件;
FD_Boundary_solver1D:差分方法处理边界条件;
Laplace_Matrix2D:创建一个二维Laplace算子离散对应的系数矩阵,没有特殊处理边界点;
Laplace_Matrix1D:创建一个一维Laplace算子离散对应的系数矩阵,没有特殊处理边界点;
upwind_Matrix1D:获取迎风格式对应的系数矩阵(一维);
upwind_Matrix2D:获取迎风格式对应的系数矩阵(二维);
judgeTime:根据一个pde结构体的类型,判断它是否依赖于时间;
FDsolver_Wave2D:用差分方法求解二维波方程;
FDsolver_Wave1D:用差分方法求解一维波方程;
FDsolver_Poisson2D:用差分方法求解二维 Poisson 方程;
FDsolver_Poisson1D:用差分方法求解一维 Poisson 方程;
FDsolver_Heat2D:用差分方法求解二维热方程;
FDsolver_Heat1D:用差分方法求解一维热方程;
FDsolver_Advection2D:用差分方法求解二维对流方程;
FDsolver_Advection1D:用差分方法求解一维对流方程。
imoverlay:基于二值掩模使用纯色填充 2 维图像;
imdrawlines:在图像上画线;
imdrawcircles:在图像上画圆;
PiecewiseLinearTransformation2D:2 维分片线性几何变换;
imboxfilt:2 维框滤波;
bwulterode:二值图像终极腐蚀;
imreconstruct:形态学重建;
imregionalmax:区域最大值;
imregionalmin:区域最小值;
imextendedmax:扩展极大值变换;
imextendedmin:扩展极小值变换;
imhmax:H 极大值变换;
imhmin:H 极小值变换;
imimposemin:强置区域最小值;
imsegkmeans:基于 K 均值聚类的图像分割;
hough:Hough 变换;
houghlines:基于 Hough 变换检测线段;
houghpeaks:计算 Hough 变换中的峰值;
bwarea:二值图像中对象的面积;
immse:均方误差;
psnr:峰值信噪比;
ssim:结构相似性;
detectFASTFeatures:使用 FAST 算法检测角点;
detectHarrisFeatures:使用 Harris-Stephens 算法检测角点;
cornerPoints:用于存储角点的对象。
convbin:利用 set_convbin 函数设置的 opt 变量,对传入的文件进行解算;
convbinWithStr:convbin_ex 的函数传入参数只需要两类,一个是用户的 json 文件,一个是用户要进行转换的文件;在 *usr.json 文件中修改用户想要的转换参数;
set_convbin:设置 convbin 模块中解算所需要的文件变量;
rnx2rtkp:利用 set_rnx2rtkp 函数设置的opt变量,对传入的文件进行解算;
rnx2rtkpWithStr:rnx2rtkp 模块,传入接收机观测文件、卫星导航文件,选择不同的解算模式,解算出接收机位置信息 *.pos 文件;
rnx2rtkp_Usr:rnx2rtkp 模块,传入接收机观测文件、卫星导航文件,选择不同的解算模式,解算出接收机位置信息 *.pos 文件;
set_rnx2rtkp:设置 rnx2rtkp 模块中解算所需要的文件变量;
pos2kml:利用 set_pos2kml 函数设置的 opt 变量,对传入的文件进行解算;
pos2kmlWithStr:pos2kml 模块,读取 *.pos 文件转化为 kml 格式,以便于在 google earth 查看解算的位置。在*usr.json文件中修改用户想要的转换参数;
set_pos2kml:设置 pos2kml 模块中解算所需要的文件变量;
satposWithStr:传入最新版本 RINEX 3 格式下的nav文件,计算出各个历元下的卫星的位置、速度、钟差;
sppWithStr:传入 nav 文件,和 obs 文件进行单点定位计算接收机位置;
pppWithStr:传入精密星历 sp3 文件,钟差 clk 文件,nav 文件,和 obs 文件进行精密单点定位计算接收机位置;
allWithStr:进行各种类型的定位解算,包括单点定位,精密单点定位,相对定位;自动识别传入的文件,至少两个文件,包含 obs,nav 文件,或者传入精密星历 sp3 文件,钟差 clk 文件,nav 文件,和 obs 文件进行精密单点定位;输入的第一个参数是解算的模式;
simsol:利用 set_sim 函数设置的 opt 变量,对 simulate 部分进行解算;
simsolWithStr:传入模拟 obs 信号所要使用的 json 文件,传入解算所要使用的 json 文件;在 test_simobs_usr.json 中修改用户的仿真参数;在 test_simsol_usr.json 中修改用户的解算参数;
set_sim:设置 simulate 模块中进行解算,所需要的文件变量;
simobs:利用 set_simobs 函数设置的opt变量,对 simulate 中生成 obs 文件部分进行计算;
simobsWithStr:传入仿真所要使用的 json 文件,在 test_simobs_usr.json 中修改用户的仿真参数;
set_simobs:设置 simulate 模块中生成 obs 文件,所需要的文件变量。
ode15s:变阶 1 到 5 阶的NDF
ode23tb:二阶隐式 Runge-Kutta 公式
ode23t:梯形公式
ode23s:改进的二阶 Rosenbrock 公式
ode6:“鲁棒”的6阶Runge-Kutta 方法;显式求解器
ode7:“鲁棒”的7阶Runge-Kutta 方法;显式求解器
ode8:“鲁棒”的8阶Runge-Kutta 方法;显式求解器
ode9:“鲁棒”的9阶Runge-Kutta 方法;显式求解器
width:输出输入的信号维度
IC:设置初始值
chirpSignal:线性调频信号
digitalClock:数字时钟
ground:接地
repeatSequenceInterpolated:重复序列(可选插值方法)
repeatSequenceStair:重复序列(保持)
signalGenerator:常见波形生成
polynomial:多项式
trigonometricFunc:三角函数
minMaxRunningResettable:极大极小
unaryMinus:求相反数
detectChange:信号变化检查
detectFallNegative:检查信号从非负数向负数变化
detectFallNonpositive:检查信号从正数向非正数变化
detectRiseNonnegative:检查信号从负数向非负数变化
detectRisePositive:检查信号从非正数向正数变化
detectDecrease:检查下降沿
detectIncrease:检查上升沿
intervalTest:范围检查
NAND:与非
NOR:或非
XOR:异或
NXOR:异或非
baltamFunc:脚本嵌入
switch:转换器
manualSwitch:手动选择转换器
from:用指定的标记从 Goto 模块接收信号
goto:goto模块
busCreator:信号合并模块
busSelector:信号选择模块
stopSim:停止仿真
tXY:三维绘图模块,x轴为时间
XYZ:三维绘图模块,3个输入端口
inport:输入端口
outport:输出端口
backlash:间隙模块
PWM:脉冲调制信号
rateLimiter:速率控制
Relay:中继
hitCrossing:穿越检查
wrapToZero:截断,如果输入大于阈值则输出零
variablePulse:脉冲信号
Derivative:微分
PIDController:PID控制
transportDelay:时延
vatiableTimeDelay:时延
descriptorStateSpace:带质量矩阵的状态空间
Kalman Filter
LTI System
Varying Lowpass Filter
Varying Notch Filter
Discrete Varying Lowpass
Discrete Varying Notch
Linear Second-Order Actuator
Nonlinear Second-Order Actuator
Centrifugal Effect Model
Dynamic Pressure
Incidence & Airspeed
Incidence, Sideslip, & Airspeed
Mach Number
Radius at Geocentric Latitude
Wind Angular Rates
Calculate Range
Crossover Pilot Model
Tustin Pilot Model
Precision Pilot Model
Quaternion Conjugate
Quaternion Inverse
Mapped Motor
Mapped Steering
Kinematic Steering
Drive Cycle Source
Mapped Core Engine
Simple Engine
Mapped CI Engine
Mapped SI Engine
Gearbox
Reduced Lundell Alternator
Datasheet Battery
Bidirectional DC-DC
Equivalent Circuit Battery
Estimation Equivalent Circuit Battery
Starter
Flux-Based PM Controller
Vehicle Body 1DOF Longitudinal
Vehicle Body Total Road Load
Lorenz System
Chua System
Chen System
Duffing System
Liu's System
Rossler System
Arneodo System
Genesio-Tesi System
Lotka-Volterra System
Lu's System
Newton-Leipnik System
Volta System
Van der Pol System
半车振动模型
含有轮毂电机的1/4车辆垂向振动模型
RLC电路
三相电流电路
电机clark变换
电机PARK变换
FIR滤波器
IIR滤波器
DHT变换
新增子系统封装
支持带有子系统封装的模型仿真。
新增子函数
提供子函数模块,支持在模型中嵌入m脚本联合仿真。
新增混合系统建模计算
支持包含离散模块和连续模块的混合模型仿真计算。
新增采样周期异步计算
支持包含不同采样周期模块的模型仿真计算。
优化了路径管理,最小管理单位由脚本变更为路径,新增运行/调试未找到和有高优先级同名文件时的提示,重做了图形交互界面;
优化了断点及条件断点的样式及交互方式;
优化了帮助系统首页布局;
Ctrl+Tab向前切换
Ctrl+Shift+Tab向后切换
Ctrl+W关闭
优化了智能缩进代码,新增一键智能缩进功能,快捷键Ctrl+I;
变更变量详情页Delete键功能,由“删除值”变更为“替换为0”;
在没有越界的情况下,支持结构体分量下标赋值,例如 A(3).s = 1
;
匿名函数现在支持输入 varargin
作为参数;
匿名函数输入参数过多/过少会报错(之前不会报错,输入过多参数会忽略多余参数);
匿名函数调用内置或者 M 函数时,现在支持指定多个输出参数;
重构代码报错逻辑,减少大量重复和无用的报错,增加报错函数栈回溯;
内置、脚本函数连续嵌套调用时,中间变量不会被赋值给 ans
;
内置函数的输出参数支持 cell 展开的用法;
load
函数现在支持 load a.mat
这样的用法;
[]
和 ()
现在支持列表展开的语法;
dbstop函数现在支持使用全路径作为参数,可以给不在搜索路各径的M文件添加断点;
dbload函数现在支持使用全路径作为参数,重新加载脚本内容并更新断点位置;
移除旧路径管理相关函数 source
discard
using
using_script
disusing
disusing_script
修改断点触发逻辑,现在断点只能在 M 文件中触发,程序不会在 BP 文件里中断,也无法进行步进操作;
修复 for
循环中,使用循环变量赋值其他变量,其他变量会被后续循环变量更新影响的 bug;
修复了匿名函数文件定位的问题,调试代码遇到匿名函数时会正确定位到文件位置;
修复了定义 M 函数时、变长输出的内置函数/脚本函数在不同场景调用时, nargout
设置错误的问题,以及 M 脚本中调用语句时 nargout 被设置为 1 的问题;
修复 while + continue
循环条件语句不会被执行的问题;
修复 cell 作为返回值同时扩容的报错以及赋值结果不正确的问题;
修复了 return
语句在 switch
中不生效的问题;
fh = @fun
):如果在当前环境中存在函数 fun
,例如子函数、脚本、内置等,则绑定后函数内容不再发生变化。
例如路径中有 fun.m
函数,即使把路径移除,函数句柄的绑定仍然生效。
如果在当前环境中不存在函数 fun
,不报错,而是在调用时再次尝试绑定。
如果调用时绑定失败才会返回找不到函数的错误(调用时不支持绑定到子函数)。
修复了匿名函数和 feval 函数报错文件位置异常的问题;
修复了a=' '语句创建空字符数组维度为1×0的问题(实际应为0x0);
修复运算符&、|、&&、||的优先级顺序问题,现在运算严格按照&>|>&&>||的优先级执行;
修复windows字符界面运行代码时,使用Ctrl+C软件会直接退出的问题。现在windows字符界面可以正常进行程序中断;
修复循环内 switch 语句中的 continue/break 不生效的问题,并对不在循环内的 continue/break 给出错误提示;
绘图修改注册方式为内置形式;
绘图函数适配极坐标区;
新增 xlabel、ylabel、zlabel 函数支持数字标签输入;
新增 plot、plot3 支持 MarkerIndices 属性;
新增 reshape、repmat、isfinite、ismising 函数对高维数组的支持;
新增 intersect、full 函数对稀疏矩阵的支持;
新增 round、colon 函数对复数的支持;
新增 qr 函数对 qr(A, 'econ')、qr(A, 'econ', 'matrix')、qr(A, 'econ', 'vector') 的支持;
新增 floor 函数对整型的支持;
新增 meshgrid 函数对三维、复数的支持;
新增 struct 函数支持字段名称加入标识符判断;
新增 zeros、ones、eye、nan、inf 函数支持 'like' 选项;
新增 fft、ifft 函数第二个输入参数支持"[]";
新增 vecnorm 函数支持实数输入的 inf 范数;
cd
函数支持 p = cd
这样的语法,将切换前的目录放到变量 p
中。
mrdivide:修复了警告信息错误的问题;
struct:修复了具有一个字段的结构体输出错误的问题,修复了结构体数据通过end索引访问数据失败、通过end+1索引方式增加结构体数据失败的问题;
setfield:修复了嵌套结构体修改一个值造成中间结构体丢失的问题;
qr:修复了特殊情况下置换矩阵输出错误且再次运行(或运行 clear)会出现闪退的问题,修复了分解结果错误的问题;
fscanf:修复了 %c 形式读取会闪退的问题;
修复了 A/B 不支持当 A 为向量的矩阵除法的问题;
isvector:修复了 1×1×N 的数组不是向量时,isvector 返回值错误的问题;
NaN:修复了 NaN 为输入参数时,min(NaN,1)、max(NaN,1) 函数输出错误的问题;
mldivide:修复了警告信息错误的问题;
strfind:修复了对重叠模式的查找错误的问题;
sign:修复了输入为 nan 时 sign(nan) 输出错误的问题;
setdiff:修复了 B 为空集,指定 rows 时结果错误的问题;
string:修复了输入高维数组导致闪退的问题;
strlength:修复了对中文支持存在的问题;
diag:修复了输出错误的问题,修复了提取稀疏矩阵左下角对角线元素闪退的问题;
legendre:修复了计算 P_1 = legendre(1,[0.3:0.1:0.5]) 错误的问题;
rot90:修复了 rot90(A,k )中 k 取负数的时候没有返回结果的问题;
ismising:修复了仅识别出一个缺失值的问题;
sum:修复了 a=[];sum(a) 计算的问题;
celldisp:修复了无法向输出流打印的问题。
移除了 graph 和 time 插件,主体函数已经完全包含这两个插件的功能。
更新treeview 视图界面
更新tabview 视图界面;
更新tab页签;
参数配置界面更新;
求解器界面更新
离散计算单元支持设置采样时间参数。
支持真元仿真模型的报错在真元界面显示。
修复logicOperator模块端口数为1时的计算错误。
建议解决方案:如果用户设置参数需要用到pi等表达式计算,请使用天元计算出确切的数字,再填入参数设置窗口。
画布上的模块图标大小会随着端口数的增多而增大,如果过大会占据画布所有位置。例如sum、product、mux、demux、logicOperator模块。建议用户使用时设置端口数不要超过50。
在复杂模型下,复制模块连线到新文件中,连线会出现异常;同时偶现模块入参连接出参,出现代数环。
没有解决如 c = {}; c{1}.x = 1
这类对已有 cell 扩充并初始化为 struct 的问题,这样的语句目前会报错下标越界。