【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 == 1
   rtn = questdlg('Close the current scenario?');
   if ~strcmp(rtn,'Yes')
      stkClose(conid)
      return
   else
      stkUnload('/*')
   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,即二者互联。

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值