line space matlab,Matlab学习过程中的一些小问题

1.Overload your functions by having variable number of input and output argumernt.Not only can we overload functions also operators.

我们可以通过不同的输入输出来重载函数,当然我们还可以重载运算符。一般来说,运算符重载只在OOP中使用到。(see varargin,varargout,nargin,nargout)

varargin :

Allows any number of arguments to a function. The variable varargin is a cell array containing the optional arguments to the function. varargin must be declared as the last input argument and collects all the inputs from that point onwards. In the declaration, varargin must be lowercase (i.e., varargin).

允许函数输入任意数量的参数,varargin实际上是一个cell,包含着函数的可选参数。varargin参数必须在参数列表的最右面,在声明时,varargin必须小写!

For example, the function,

例如,函数:

function myplot(x,varargin)

plot(x,varargin{:})

collects all the inputs starting with the second input into the variable "varargin". MYPLOT uses the comma-separated list syntax varargin{:} to pass the optional parameters to plot.

这个函数把从第二个输入的参数全部收集进变量"varargin"

The call,

>> myplot(sin(0:.1:1),'color',[.5 .7 .3],'linestyle',':')

results in varargin being a 1-by-4 cell array containing the

values 'color', [.5 .7 .3], 'linestyle', and ':'.

varargout:ariable length output argument list.

Allows any number of output arguments from a function. The variable varargout is a cell array containing the optional output arguments from the function. varargout must be declared as the last output argument and must contain all the outputs after that point onwards. In the declaration, varargout must be lowercase (i.e., varargout).

允许函数任意数量的输出,varargout和varargin的数据类型一样,是一个cell,包含了函数的可选的任意输出,同样varargout也必须是在输出的左后一个参数,在声明时,varargout必须小写!

varargout is not initialized when the function is invoked. Youmust create it before your function returns. Use NARGOUT todetermine the number of outputs to produce.

varargout直至函数被调用时才被初始化,你必须在你的函数返回前创造他,使用NARGOUT来决定要产生的输出(总)的数目。

For example, the function,

例:

function [s,varargout] = mysize(x)

nout = max(nargout,1)-1;

s = size(x);

for i=1:nout, varargout(i) = {s(i)};

%提前创造varargin(remember varargout is a cell)

end

returns the size vector and optionally individual sizes. So,

>>[s,rows,cols] = mysize(rand(4,5));

>> s = [4 5], rows = 4, cols = 5.

2.Visualizing matrices 的几个函数

a.colormap    b.surf    c.contour   d.colorbar    e.imagesc

(all thiese are built-inn functions)

3.计算程序运行的时间;

tic ....toc1...toc2...此外还有for more complicated situation >>profile on;>>profile viewer

4.MATLAB 格式化输出

fprintf :write formatted data to text file.将格式化数据写入文本文档。

fprintf(FID, FORMAT, A, ...) applies the FORMAT to all elements ofarray A and any additional array arguments in column order, and writesthe data to a text file. FID is an integer file identifier. ObtainFID from FOPEN, or set it to 1 (for standard output, the screen) or 2(standard error). fprintf uses the encoding scheme specified in thecall to FOPEN.

将FORMAT应用到A的所有元素中和其他附加的以列为顺序的参数,然后将这些数据写到一个文本文档,FID是一个文件的辨识符,从fopen中国获得fid,或者将其设置为1(标准输出到屏幕上)或者2 (标准错误)。

fprintf(FORMAT, A, ...) formats data and displays the results on the screen.

格式化数据并将其输出到屏幕上。

COUNT = fprintf(...) returns the number of bytes that fprintf writes.

计算fprintf写了多少字节。

FORMAT is a string that describes the format of the output fields, and can include combinations of the following:

FORMAT是一个字符串,它描述输出的格式:

* Conversion specifications, which include a% character, a conversion character (such as d, i, o, u, x, f, e, g, c, or s), and optionalflags, width, and precision fields. For more details, type "doc fprintf" at the command prompt.

* Literal text to print.

* Escape characters, including:

\b Backspace '' Single quotation mark

\f Form feed %% Percent character

\n New line \\ Backslash

\r Carriage return \xN Hexadecimal number N

\t Horizontal tab \N Octal number N

For most cases, \n is sufficient for a single line break.

However, if you are creating a file for use with Microsoft

Notepad, specify a combination of \r\n to move to a new line.

Notes:

If you apply an integer or string conversion to a numeric value thatcontains a fraction, MATLAB overrides the specified conversion, anduses %e.

Numeric conversions print only the real component of complex numbers.Example: Create a text file called exp.txt containing a short table ofthe exponential function.

x = 0:.1:1;

y = [x; exp(x)];

fid = fopen('exp.txt','w');

fprintf(fid,'%6.2f %12.8f\n',y);

fclose(fid);

Examine the contents of exp.txt:

type exp.txt

MATLAB returns:

0.00 1.00000000

0.10 1.10517092

...

1.00 2.71828183

sprintf:仅格式化并不输出,声明同fprintf。

5.多样化的MATLAB(Miscellaneous MATLAB)

几个关键字:deal,eval, repmat

一个表达式:regular expression

6.使用cell和struct的几个注意事项

37377a26813087856802d7e48edcb75e.png

6b044046813c34873f32771970cc4a68.png

4b75db8d17e0ecb56b548c7d969ecf95.png

注意cell的索引方式。cell使用前一般提前声明和prelocation.

另;struct一般不提前声明。看下列代码:

998b2d6abb9f7e3210cbccc0350c8779.png

a = struct;

a(1).name = 'Leee';

a(1).age = 25;

a(2).name = 'bbb';

a(2).age = 32;

%或者声明+初始化

b = struct('name',{'lee','faker'},'age',{25,34});

初始化+声明同步进行时,key-valu的value应该用{ },但如果西先声明后赋值的化依旧使用{ } ,就会给出现这种情况:

a = struct;

a.name = {'Leee','bbbb'};

a.age ={25,32};

03e5e4361aba415e7438b52d4c822e98.png

我们还可以通过使用deal对struct进行批量化的赋值:

a =struct;

cc = {'x',1,2,3,4};

for i=1:5

a(i).name = deal('x');

a(i).age = deal(10);

end

以下代码会创建一个Vector

ageVec = [a.age];

则输出如下:

b52848d2721448ba02a8264c44d8ca16.png

7.OOP

谈到OOP,必须讲到的封装,继承,多态。

先给出一个定义matlab中类的典型代码:

%class contact

classdef contact

properties%默认属性为public

name

phonenumber

end

properties(SetAccess = private)%私有属性,还可以设置读取的属性GetAccess

gender

end

methods

function obj = contact(m_name,m_phonenumber,m_gender)

obj.name=m_name;

obj.phonenumber = num2str(m_phonenumber);

obj.gender = m_gender;

end

function disp(obj)

fprintf('%s is %s, phonenumber is %s\n',obj.name,...

obj.gender,obj.phonenumber)

end

end

end

第一个方法时类的构造函数,第二个方法我们重载了函数disp.

8.Linked List

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值