春节网站设计,网站开发工作量评估,微网站的建设,国外医院网站设计Matlab编程的规范化思考
1.并行化
2.释放内存
3.需要调参的变量太多#xff0c;可考虑将变量都放到一个结构体里面。
4.find(y),就是要找到y中那些非零项的指引
5.代码运行出现问题的时候#xff0c;在命令行输入why就可以得到答案
6.输入bench可以给电脑跑分。
7.hom…Matlab编程的规范化思考
1.并行化
2.释放内存
3.需要调参的变量太多可考虑将变量都放到一个结构体里面。
4.find(y),就是要找到y中那些非零项的指引
5.代码运行出现问题的时候在命令行输入why就可以得到答案
6.输入bench可以给电脑跑分。
7.home 将光标移至命令窗口的左上角
8.查看matlab命令历史记录可找history.m, prefdircd prefdir%%%%%%%%%%%%%%%%%%%%%
%%%%方法2
history com.mathworks.mlservices.MLCommandHistoryServices.getSessionHistory;
historyText char(history);
9clear all 与 clear的区别
clear all,清除所有的变量包括全局变量 global。若是串行的程序主函数main分别调用子函数 1,2……n
那么任何一个子程序中都不要clear all因为主程序在调用子程序之前应该有了变量定义和赋值子程序一clear all那些值就没有了。若只有一个main函数分别要做几个运算一般应该互相独立的完成一个运算后clear all清除所有变量然后进入下一个运算变量名也可以重复使用免得不小心用到前面定义过的变量出问题。
这就说明在定义子函数的时候不要忘记使用clear all
clear清除不了全局变量只能清除普通变量。
10.rng default
恢复matlab启动时默认的全局随机流。在matlab启动时会用一个默认的随机数生成器产生很多从0到1之间的伪随机数即全局随机流任何分布的随机数组都是该全局随机流中的数据。
11.关于双图标题
figure; imshow(uint8([t1,t2])); title([‘余弦值为’,num2str(cos1),’ ‘,’余弦夹角为’,num2str(v),’°’]);
12.一定要测试运行时间便于优化代码
13.如何删除workspace中除某个变量之外的所有变量。
who %目前的變量
Your variables are:
a b c K clear -regexp [^a]K who %目前的變量
Your variables are:
a 第二种方法 clearvars -except a
14 添加当前文件夹及其子文件到路径
currentfold pwd;
addpath(genpath(currentfold))15 新建带有时间标志的文件夹来储存文件
savetime fix(clock);
savetimestr num2str(savetime);
savetimestr(isspace(savetimestr)) []; %去除所有空格
selectedimagefullname [10foldHandCraft savetimestr];
% 判断是否存在文件夹
if exist(selectedimagefullname,dir) 0mkdir (selectedimagefullname)
elsecd selectedimagefullnamedelete *cd ..
end
%储存文件
save([.\ selectedimagefullname \train.mat],FTtrain);
save([.\ selectedimagefullname \test.mat],FTtest);
copyfile(Data*.mat,[.\ selectedimagefullname] )
delete Data*.mat
16.如何查看内存使用情况 feature(memstats)
17.matlab安装新工具包
matlabroot % 进入matlab安装根目录
winopen(ans) % 打开matlab安装根目录
将mathmodl工具箱复制到toolbox中
addpathgenpath(Your_ToolBox_Full_Path))%注意必须是文件夹路径
savepath或者界面方式
pathtool
点击添加目录及子目录为路径并保存重启matlab
或者 rehash toolbox
18 mex
mex.getCompilerConfigurations(c,selected)查看mex编辑器选择的语言
19内存预分配可提高matlab运行速度
未进行内存预分配y 0;
tic;
for i2:100000;y(i1) y(i) randn;
end;
toc时间已过 0.031222 秒。进行内存预分配y zeros(100001,1);
tic;for i2:100000;y(i1) y(i) randn;end;
toc时间已过 0.007672 秒。节约时间0.031222-0.007672 / 0.031222 75%进行矩阵计算y zeros(100001,1);
tic;
y cumsum([0;y]);
toc时间已过 0.000445秒。节约时间0.031222-0.000445 / 0.031222 98.6%
20分析matlab程序的主要效率
在需要分析效率的程序段前后加入profile onprofile off然后在common line中输入profile viewer即可观察到这段程序的效率