Matlab使用注意事项及遇到的问题

120 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.脚本文件的命名不能是函数名,如plot,也不能是数字,比如1,否则运行时会出错。

2.在一个.m文件的末尾加 cd F: \ 可以将工作路径切换到F盘,然后运行这个路径下的.m文件。

path=['/home/aa/bb_100_',num2str(i)];
cd(path);

在labview中调用matlab脚本时,想要使用cd命令跳转至目标路径,出现错误,后发现是路径中名含有空格导致。

3.判断一个变量等于某个数值时,是用“==”,而不是“=”,单独的等号是赋值操作。

4.matlab中子函数的输入输出接口可以用来传递变量。如下图,子函数[ff]=select(aa,bb),括号中的aa和bb即为输入输出接口,在主程序中aa的值发生了改变,在子函数select中,调用aa的值就是改变后的值。

aa=value;
[ff]=select(aa,bb)

5.使用fscanf函数读取文件,其中m为行数,n为列数。如果此时读取的GOLDEN1.txt中的数据就是8行500列,则读取没有问题;如果GOLDEN1.txt中的数据不是8行500列,比如8行5000列,这种读取方式就会将第1行的501-1000列读取为data_ori的第2行,依次类推,也就是说并不是按照设定的行列数进行矩阵式读取,只是顺序读取。

m=8;
n=500;
data=cell(m,n);
fid=fopen('GOLDEN1.txt','r');
for i=1:m
for j=1:n
data{i,j}=fscanf(fid,'%s',[1,1])
end
end
fclose(fid);

6.循环绘图时出现多幅图堆叠的情况,解决方法是加上close all语句,在每次画完一张图后关闭当前图像窗口。

clc,clear
for i=1:10
plot([0,100],[0.1,0.1],'r');
close all;
end

7.使用fopen不仅可以创建txt文件,也可以直接创建.tcl和.sh脚本文件。

fid=fopen(['/home/script/proc.sh'],'wt');
fprintf(fid,'%s\n','cd /home/data');
fprintf(fid,'%s\n','a=load(data.txt)');
fclose(fid);
文章首发于个人微信公众号:IC小白
欢迎关注~