实验三  字符串数组的使用、简单脚本文件和函数的编写
[实验内容]
一.串数组的创建和寻访
1. 先请实际操作下例,以体会数值量与字符串的区别
clear  %清除所有内存变量
a=12345.6789    %给变量 a 赋数值标量
class(a) %对变量a的类别进行判断
a_s=size(a)  %数值数组 a 的“大小”
b='S'  %给变量b赋字符标量(即单个字符)
class(b)  %对变量b的类别进行判断
b_s=size(b)  %符号数组 b 的“大小
whos    %观察变量 a,b 在内存中所占字节
2. 已知串数组 a=”This is an example.”,试将其倒序输出。
3. 接上题,试执行 ascii_a=double(a),观察其 ASCII 码,并将 ASCII 码变回字符串。
4. 设 A=”这是一个算例”,重复上面的 2-3。
5. 尝试用直接输入法在命令窗口创建字符串 s,第一行时“This string array”,第二行是“has multiple rows.”。
6. 利用串操作函数 char、str2mat、strvcat 分别写出使以下这段文字成为字符串的程序,注意保持这段文字的格式。
在英式用法中,引号通常是单引号,如‘Fire!’。
In GB usage quotation marks are usually single:’Fire!’.
二.脚本文件实现y=1-·cos(3t),0≤t≤3π,并在图上标出图名和极大 值点坐标。如下图所示。
可能用到的函数:num2str, char,text, hold on, 具体应用自己查 help 文档。
三.编程实现分别用 for 或 while 循环语句计算:
K==1+2+
的程序,并给出运行结果。此外,实现一种避免使用循环的的计算程序。
四.函数文件
1. 详读并运行下面的 circle.m 函数文件。体会 M 函数文件的编写结构及方法。  %后面的内容称为注释行,不被执行,起注释说明作用.
function sa = circle(r,s)  % 首行是函数声明行,以function开头
%CIRCLE    以制定颜画半径为r的圆面
%  r      指定半径的数值
%  s      指定线的字符串
%  sa      圆面积
%
% circle(r)    利用蓝实线画半径为 r 的圆周线.
% circle(r,s)    利用串 s 指定的线画半径为 r 的圆周线.
% sa=circle(r)    计算圆面积,并画半径为 r 的蓝圆面.
% sa=circle(r,s)  计算圆面积,并画半径为 r 的 s 圆面.
% 编写于1999年4月7日,修改于1999年8月27日。
matlab二进制字符串转数组
if nargin>2 % nargin    表示输入宗量的变量个数,是系统保留变量
error('输入宗量太多。');  % error把引号的内容在命令窗口前加问号输出
end
if nargin==1
s='b';
end
clf      %清图形窗口
t=0:pi/100:2*pi;
x=r*exp(i*t);
if nargout==0    % nargin表示输出宗量的变量个数,是系统保留变量
plot(x,s);
else
sa=pi*r*r;
fill(real(x),imag(x),s)    % fill指令是填充颜指令,具体看帮助
end
axis('square')    % 使得输出图形坐标为正方形
2. 编写一个简单的函数文件,它具有如下性质:该函数被调用时,如果不指定输入变量,则自动输出“用户,你忘记给定输入变量了!”;当输入大于 1 的整数时,则输出“你是一个合法用户!”;当输入的是一个非正整数时,函数文件会给出一个错误提示“你是非法用户!”【
提示:可能用到 disp,error 等指令,使用方法自己查询帮助】
[实验结果]
1. a =1.2346e+004
ans =double
a_s =1    1
b =S
ans =char
b_s =  1    1
Name      Size            Bytes  Class    Attributes
a        1x1                8  double             
a_s      1x2                16  double             
ans      1x4                8  char               
b        1x1                2  char               
b_s      1x2                16  double         
  2. a=  This is an example.
ans =.elpmaxe na si sihT
3.ascii_a = 84  104  105  115    32  105  115    32    97  110  32  101  120  97  109  112  108  101  46
ans =This is an example.
4.A =        这是一个算例
ans =      例算个一是这
ascii_A =36825      26159      19968      20010      31639      20363
ans =      这是一个算例
5.S This string array 
has multiple rows.
6.a1 =在英式用法中,引号通常是单引号,如‘Fire!’                             
In GB usage quotation marks are usually single:’Fire!’.
a2 =在英式用法中,引号通常是单引号,如‘Fire!’                             
In GB usage quotation marks are usually single:’Fire!’.
a3 =在英式用法中,引号通常是单引号,如‘Fire!’                             
In GB usage quotation marks are usually single:’Fire!’.
二.    t=0:.001:3*pi;
y=1-exp(-0.4*t).*cos(3*t);
plot(t,y);
b=max(y);
a=(find(b));
num2str(a,b);
text(a,b,'最大值点')
hold on
y=1;
plot(t,y);
      分析:没能画出如图所示的图形,是自己对char,num2str等函数的不够理解,不能熟练的掌握运用造成。
三.        i=0,k=0;
while i<64;
k=k+2^i;
i=i+1;
end
运算结果k =
1.8447e+019
四. 2.        function y=abc(n);
if nargin<1
disp(用户,你忘记给定输入变量了!);
else if n>1
disp(你是一个合法用户!);
else if n<0
error(你是非法用户!);
end

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。