Category Archives: Matlab学习笔记

看《Matlab在数学建模中的应用》留下的笔记

过程很简单,按着书走就行,我之前往往使用nlinfit()来进行拟合,需要一个函数模型m文件,比较繁琐,这里用的是fittype()和fit()函数,比nlinfit()简单很多。

M源文件:

syms t
x = [0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15];
y = [1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02];
f = fittype('a * cos(k * t) * exp(w * t)', 'independent', 't', 'coefficients', {'a', 'k', 'w'});
cfun = fit(x, y, f)     %显示拟合函数
xi = 0:.1:20;
yi = cfun(xi);
plot(x, y, 'r*', xi, yi, 'b-');

clip_image001 Read More →

很简单,就像书中所描述的那样,例如:

&nb Read More →

整个过程很像C语言的文件保存操作。

需要先用fopen(‘filename’, ‘type’)打开一个文件句柄,然后用fprintf(fid, format, variable)即可。

在Matlab帮助文件中搜索fprintf有非常详细的帮助文档。

但是想将我在“Textread函数-高级的Matlab与ASCII文件数据交互”里存入Matlab里的那个表格成功输出出来并不是那么容易的事,首先我们将数据存进Matlab后它已经成了一个矩阵,特别是对于name矩阵和answer矩阵,因为它们是cell类型,不能直接输出,这时,我们就需要进行类型转换了——char()函数。

建立M文件如下:

fid = fopen(‘E:\MatlabTest\TestDataPrint.txt’, ‘w’);
fprintf(fid,‘This is the database of Class 1.\n’);
for i = 1:4
fprintf(fid, ‘%s Type%u %f %u %s \n’, char(name(i)), type(i), x(i), y(i), char(answer(i)));
end
fclose(fid);

  Read More →

格式就按书上所讲:

[A, B, C ...] = textread(‘filepath\filename.filetype’, ‘format’, N)

其中A, B, C即为要保存的变量名,format是格式符,就像C/C#…这些语言中scanf里的那些参数一样,填%s (字符串), %f(实型), %n(整型)等等,但与那些编程语言相比,自由度更大,比如你的数据有像Type1, Type2这样的,再存入矩阵时需要把Type这四个字母去掉,可以这样–’Type%n’。

clip_image001 Read More →

load函数在书中讲的很简略,其实确实没什么可讲的,而且有什么不理解的话在Matlab帮助里load函数的相关帮助也很详细,唯一值得说的在书中与帮助里都说load函数的格式是load(‘filename’),或者类似形式,难道要load文件就一定要本Current Directory转到文件所在目录么?答案是不必的。

其实load也可以这样用:

load(‘filepath\filename.filetype’)

像这样:

clip_image001 Read More →