matlab能调用idl吗,利用IDL调用matlab时报错

使用IDL调用MATLAB之前所生成的人工神经网络进行遥感影像计算,部分代码如下:

;creat matlab com

oMatlab1= obj_new('IDLcomIDispatch$ProgId$Matlab_application_7_11')

oMatlab1 -> Execute,'clear all'

str1='E:\Dir_noradiance.mat'

oMatlab1 -> PutWorkspaceData, 'str11', 'base', str1

oMatlab1 -> Execute,'ANN_Dir=load(str11);'

oMatlab1 -> Execute,'Dir_ps_c=ANN_Dir.ps;'

oMatlab1 -> Execute,'Dir_ts_c=ANN_Dir.ts;'

oMatlab1 -> Execute,'Dir_net_c=ANN_Dir.RM_fnet;'

index_pureclear=where(CFinal eq 5,ct_pureclear)

if ct_pureclear gt 0 then begin

input_Dir=[transpose(Alt[index_pureclear]),transpose(cosSZA[index_pureclear]),transpose(AOD_data[index_pureclear])]

i     nput_Dir=reform(temporary(input_Dir),ct_pureclear,3)

oMatlab1 -> PutWorkspaceData,'input_Dircopy','base',input_Dir

oMatlab1 -> Execute,'ANN_Dir_Flux=Function_Net(input_Dircopy,Dir_ps_c,Dir_ts_c,Dir_net_c);'

oMatlab1 -> GetWorkspaceData,'ANN_Dir_Flux','base',tmp_Dir

提示错误:

IDLCOMIDISPATCH$PROGID$MATLAB_APPLICATION_7_11::GETWORKSPACEDATA: Unable to call method GETWORKSPACEDATA Unable to get COM error information or there is no COM error information available.

发生意外。

停在oMatlab1 -> GetWorkspaceData,'ANN_Dir_Flux','base',tmp_Dir这行。

涉及到的函数如下:

function tmp=Function_Net(inputd,ps,ts,RM_fnet)

pnewn=mapminmax('apply', inputd,ps);

anewn=sim(RM_fnet,pnewn);   %用训练好的网络进行模拟,获得结果为anewn

tmp=mapminmax('reverse',anewn,ts);%将模拟结果anewn根据目标数据极值归一化的信息进行还原

end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值