matlab程序的编写也要注意执行效率,下面以三段程序为例,讲讲如何提高程序的效率 matlab中有tic和toc命令来记录一段程序的cpu使用时间,可以用help tic命令查看相应的说明 先看第一段程序 clear all clc tic for a=0:1:10000 b(a+1)=a^2-a+1; end toc 执行结果如下: Elapsed time is 0.244107 seconds. 再看第二段程序 clear all clc tic b(1:10001)=0; for a=0:1:10000 b(a+1)=a^2-a+1; end toc 与第一段程序的区别在于预先分配了b向量的空间大小,执行结果如下: Elapsed time is 0.000459 seconds. 最后看第三段程序 clear all clc tic a=0:1:10000; b=a.^2-a+1; toc 这段程序与前面的区别在于不采用循环的方式运算 执行结果如下: Elapsed time is 0.000311 seconds. 从上面的实例可以明显的看出这三种方式编程的优缺点所在,最后一种向量运算方式最为节约CPUtime,而第二段程序由于事先分配了空间,相比于第一段程序执行效率明显的提高,而第三种方式在数据量更大的情况下,将会比第二种方式表现出更强的优越性
拿程序说话:毛泽东与袁腾飞的罪 倪鹏云 :《 捍卫毛泽东的人格尊严,就是捍卫中华民族的神圣尊严》 『袁腾飞以极其卑污的灵魂恶毒谩骂攻击中国人民的伟大领袖、中华人民共和国的开国之父毛泽东,同时公开散布了许多涉嫌煽动分裂国家、煽动颠覆国家政权的言论,稍有一点良心和法律常识的人都认为相关方面必须坚决追究此人的法律责任 。』 高峰 :《 对袁腾飞涉嫌煽动颠覆国家政权、煽动分裂国家的控告信》 有人要给 袁腾飞以分裂国家,颠覆国家治罪了。 我是搞程序的,除了程序啥都不懂。 倪鹏云 也是搞程序的,除了程序,他还懂的很多。 袁腾飞有没有罪,很简单,上程序上跑一下就知道了。 这个程序我无权编, 倪鹏云 同志才有权编。 如何编程序,您老人家是行家,无需我多说。 程序实现啥目的,也是您老人家自己说了算。 但有一点,你不能编这样的程序 Begin IF 人 == 袁腾飞 THEN 死罪 IF 人 == 毛泽东 THEN 伟大 End 你这样编程序,也太赖皮了吧? 你的程序里禁止出现,袁腾飞、毛泽东作为变量,只包含行为和言论。 你可以申请个联合国级别的课题,这个课题很有意义,你搞出来对和谐社会,起到至关重要的作用,谁君子,谁小人,以后大家都有了根本的依据,什么事能做,什么事不能做,运行一下程序就知道了。 这个程序对全人类具有无上的伟大意义,因为你的这个程序的存在,人类从此就真的能够进入幸福的天堂,不会存在战争和邪恶了。 什么破相对论,比这个程序差者十万八千里呢。 你编出来,真的给你立碑,比天还高的碑。 上面刻着: 人类幸福的起源 倪鹏云 。 但有个问题,我估计你不敢编这个程序,你无论如何调整你的参数,用几阶的神经网络算法,无论你如何加权,最后你会得到这么一个结论。 IF 袁腾飞死罪 THEN 毛泽东死罪 IF 毛泽东无罪 THEN 袁腾飞无罪 这个程序您敢不敢编,是考验共产党人是否真的实事求是,是否真的实事求是,是否真的最不怕认真二字的唯一标准。 如果,你编不出来,只能说,你根本就是在搞仙术,根本不是科学。 不能编程序的东西,一定是包含了仙术喜好,也就是,我喜欢,你管不着。 仙术和权力结合,就是我喜欢砍你的头,你管不着。 我的头被你砍了,我还管不着。 这就叫权力。 为什么我说权力是最根本的,就是为了保住我自己的头。 连头都没了,还怎么喝粥啊? 归根到底,你的程序如果真的要能实用,无论你搞得多复杂,其最终只能和以下程序等价: Begin IF 人 == 袁腾飞 THEN 死罪 IF 人 == 毛泽东 THEN 伟大 End