本帖最后由 gouliang 于 2019-12-23 09:37 编辑
主程序:
clc;clear
import java.awt.Robot
import java.awt.event.*
keys = Robot;
keys.setAutoDelay(100);
ExeFileName='goudan.exe';%'goudan.exe'就是你调用的外部exe,该exe会用dos窗口进行交互。
for k=1:5
M=[rand(1,10),k*100];
string=num2str(k);
Param1=[' ',string];
Cmd=[ExeFileName '&'];%
%Cmd=['start ' ExeFileName '&'];
%加‘start’确实可以自动关闭调用程序的cmd窗口,但cmd根窗口并不会关闭。
[status, results]=system(Cmd,'-echo');
keys.keyPress(java.awt.event.KeyEvent.VK_4 )
keys.keyRelease(java.awt.event.KeyEvent.VK_4 )
keys.keyPress(java.awt.event.KeyEvent.VK_ENTER )
keys.keyRelease(java.awt.event.KeyEvent.VK_ENTER )
csvwrite([num2str(k*100),'.csv'],M)
%%退出cmd窗口
keys.keyPress(java.awt.event.KeyEvent.VK_E)
keys.keyRelease(java.awt.event.KeyEvent.VK_E)
keys.keyPress(java.awt.event.KeyEvent.VK_X)
keys.keyRelease(java.awt.event.KeyEvent.VK_X)
keys.keyPress(java.awt.event.KeyEvent.VK_I)
keys.keyRelease(java.awt.event.KeyEvent.VK_I)
keys.keyPress(java.awt.event.KeyEvent.VK_T)
keys.keyRelease(java.awt.event.KeyEvent.VK_T)
keys.keyPress(java.awt.event.KeyEvent.VK_ENTER )
keys.keyRelease(java.awt.event.KeyEvent.VK_ENTER )
% close(Cmd)
end
disp('done')
调用的测试用goudan.exe的matlab源码(mcc编译成exe即可):
function [x,y]=fun(z);
z=input('input z \n');
if ischar(z)
z=str2num(z);%由于参数传递都是字符形式,这里必须将其转为数值型
else
z=z;
end
y=z^2;
end
你品一品我对于matlab这个问题的解决办法。