本文主要是介绍【STK】STK MATLAB互联后,MATLAB无法执行stkInit,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
博主的第一篇博客
文章目录
- 一、在此之前的安装步骤
- 二、正文
- 三、解决方法
一、在此之前的安装步骤
1、STK11.6、STK11.2.0安装包,STK中文学习资料获取途径:
(1)【STK】STK11.6下载安装+MATLAB互连+各插件模块.
(2)B站STK11.6 安装教程(视频介绍里有安装包链接).
2、整体的STK 11.6 安装、与MATLAB的互联过程可以参考:STK 11.6 安装、与MATLAB的互联及其混合编程.
本文已经到了这一步
本文解决之后遇到的MATLAB无法执行stkInit的问题(参考自【百度贴吧】求助 STK与MATLAB互联)
二、正文
错误:
>> stkInit
尝试将 SCRIPT mexConnect 作为函数执行:
C:\Program Files\AGI\STK 11\bin\Matlab\mexConnect.m出错 stkValidScen (line 20)
out = mexConnect('stkValidScen');出错 stkInit (line 15)
if stkValidScen
如图
三、解决方法
修改“当前文件夹”为 C:\Program Files\AGI\STK 11,右击bin文件夹
“添加到路径”,“选定的文件夹和子文件夹”
关闭STK后重新打开STK,但是不要新建场景,只要STK开着就行
MATLAB中重新执行stkInit
这个样子就是OK的意思。再试一段代码(摘自《STK在计算机仿真中的应用》,杨颖,王琦,第二十一章,21.2.1,STKTest.m)
delete(get(0,'children'));% Matlab连接STK,首先要获得STK的地址,示例中采用了默认地址stkDefaultHost。
% 得到地址后,就可以利用语句stkOpen打开默认地址,建立Matlab与STK的连接了。
remMachine = stkDefaultHost;
conid=stkOpen(remMachine);dtr = pi/180;
rtd = 180/pi;% 在STK中创建新场景前,需要检查STK中的当前场景,如果目前STK中已经存在一个场景,
% 就可以利用语句stkUnload关闭场景,或者利用语句stkClose关闭当前连接。
scen_open = stkValidScen;
if scen_open == 1rtn = questdlg('Close the current scenario?');if ~strcmp(rtn,'Yes')stkClose(conid)returnelsestkUnload('/*')end
end% 利用语句stkNewObj创建新场景。这里需要注意一个问题,stkNewObj在STK5.0中创建新场景时,
% 语法为stkNewObj('Scenario','','Scenario22-1'),这应该是STK5.0的程序错误所致。
% stkNewObj的正确语法应该是stkNewObj('ParentPath','Class','Name'),
% 其中ParentPath为场景或对象的路径,Class为新建对象的类别,Name为新建对象的名称。
disp('Create a new scenario');
stkNewObj('Scenario','','Scenario22-1');
STK中开始运行,一会儿后生成了一个新的场景:
于是实现了在MATLAB中控制STK,即二者互联。
这篇关于【STK】STK MATLAB互联后,MATLAB无法执行stkInit的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!