近期,在服务器上运行matlab程序,由于数据比较多,程序比较复杂,运行时间不固定,而且需要经常改变参数,重复运行几次,所以不清楚程序何时结束,以便于修改参数,继续运行。开始有时间就看看程序是否运行结束,次数多了后,就感觉分心,很不方便。
为了在第一时间知道程序运行结束,就想到了让matlab在运行结束后,立刻通知我,这样就方便我立刻修改参数,继续运行。经过思考,百度或者google,尝试,这里介绍两种可行的方法:发送短信和发送有邮件。
由于以前有过在电脑上向手机发送短信的编程实现,所以在回顾自己的文章《 C#简单实现发送手机短信 》,再结合matlab中web的使用,实现了用中国网建提供的SMS短信平台发送短信,就像我在自己文章提到的一样,用完几条免费的后,就要收费了。(顺便提一句,网上找到用开放飞信平台的API发送的,但是现在好像不能用了,不知道Why。)
用基于SMS平台发送短信,非常简单,一句命令的事,可以直接加在代码的最后:
web http://utf8.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容
得先注册网建,然后按上面的修改就可以了。
如果感觉发送短信,太麻烦,需要注册之类的,可以选择发送邮件。像网易邮件,gmail邮件等,都可以。
在使用邮件之前,首先要设置邮箱,开启stmp和pop3服务器。例如下列图片:
然后,在matlab命令窗口(command window),输入: doc sendmail,函数介绍如下:
1
2
3
4
5
6
7
8
9
10 |
MailAddress = ‘XXXXXXXX@126.com‘ ;%手机邮箱地址 password = ‘XXXX‘ ; %密码 setpref( ‘Internet‘ , ‘E_mail‘ ,MailAddress);%照抄吧 setpref( ‘Internet‘ , ‘SMTP_Server‘ , ‘smtp.126.com‘ );%SMTP服务器 setpref( ‘Internet‘ , ‘SMTP_Username‘ ,MailAddress);%照抄 setpref( ‘Internet‘ , ‘SMTP_Password‘ ,password);%照抄 props = java.lang.System.getProperties;%照抄 props.setProperty( ‘mail.smtp.auth‘ , ‘true‘ );%照抄 sendmail(MailAddress,subject,content);%<strong>提醒的是自己</strong>,直接用自己的手机邮箱 subject和content就是邮件的主题和内容,发过E-mail的都知道吧。 |
为了以后方便使用,可以包装成一个函数:
1
2
3
4
5
6
7
8
9
10 |
function mailTome(subject,content) MailAddress = ‘XXXXXX@126.com‘ ; password = ‘X‘ ; setpref( ‘Internet‘ , ‘E_mail‘ ,MailAddress); setpref( ‘Internet‘ , ‘SMTP_Server‘ , ‘smtp.126.com‘ ); setpref( ‘Internet‘ , ‘SMTP_Username‘ ,MailAddress); setpref( ‘Internet‘ , ‘SMTP_Password‘ ,password); props = java.lang.System.getProperties; props.setProperty( ‘mail.smtp.auth‘ , ‘true‘ ); sendmail( ‘X‘ ,subject,content); <br>end |
得到mail2me这个函数之后,只要在程序后面加上一句类似的:
mailTome(‘Program Over‘,‘**** Program has finished‘);
真的没有问题了么?程序员的思想总是接近完备的。
函数中存在个人隐私(手机号码和密码),如果被人看到然后用来捉弄你就不好了。
MATLAB也是完备的,她提供了一种很好的内容保护机制: protected-code。
Command
Window 键入:
1 |
pcode mailTome |
然后删除mail2me.m。在此之后,再次输入:
1 |
mailTome( ‘Is OK?‘ , ‘见证奇迹的时刻到了‘ ); |
从此,再也不会有第二个人知道你这个函数里面的内容了.
第二种方法来自于网上的查找。
Matlab 程序结束后发送短信或者邮件,布布扣,bubuko.com
原文:http://www.cnblogs.com/ywl925/p/3574011.html