第二章例题
命令文件(Script File)和函数文件(Function File)例2-1 建立一个M文件,其功能是:用两个实变量R、M生成复变量RM,然后运行该M文件。
程序1:建立一个命令文件。
clear;
R=[1,2,3;4,5,6];
M=[11,12,13;14,15,16];
RM=R+i*M
以文件名setcomp保存命令文件,然后在MA TLAB的命令窗口中输入setcomp,将会执行该命令文件,输出为:
程序2:建立一个函数文件。
function RM=fsetcomp(R,M)
RM=R+i*M;
以文件名fsetcomp保存命令文件,
然后在MA TLAB的命令窗口中输入fsetcomp,将会输出出错信息。
在命令窗口输入:
a=[1,2,3;4,5,6];
b=[11,12,13;14,15,16];
c=fsetcomp(a,b)
顺序结构例2-2
求一元二次方程ax2+bx+c=0的根。
由于MA TLAB能进行复数运算,所以不需要判断方程的判别式,
而直接根据求根公式求根。程序如下:
a=2;
b=6;
c=3;
% a=input('a=?');
% b=input('b=?');
% c=input('c=?');
d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];
disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
用网孔分析法或节点电压法分析
I1,I2,I3
1、用网孔分析法求下图中电流
matlab数组赋值
解:建模:
(1)标出网孔电流方向及符号(如下图)
2
3
(2)列网孔方程
⎩⎨⎧=++-=-+2)32(313)31(Us Ib R R Ia R Us Ib R Ia R R
(3)写成矩阵形式
⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡+--+21323331Us Us Ib Ia R R R R R R
(4)待求量与网孔电流的关系
I1=Ia;  I2=-Ib;  I3=Ia -Ib;
编程:
clear,close all,format compact
R1=6;R2=3;R3=6;Us1=24;Us2=30;%输入已知参数
r11=R1+R3;r12=-R3;%为已知矩阵元素赋值
r21=-R3;r22=R2+R3;
R=[r11 r12;r21 r22];Us=[Us1;Us2];%列出已知矩阵
I=R\Us;%算出未知矩阵
Ia=I(1),Ib=I(2),%从矩阵元素中求出网孔电流
4
pause(5)  %暂停5秒
I1=Ia;I2=-Ib;I3=Ia-Ib;%写出待求量与网孔电流的关系
disp(['I1=',num2str(I1),',I2=',num2str(I2) ,',I3=',num2str(I3)]); 选择结构  例2-3
%判断是否为偶数,单分支
x=input('输入x=');%当x 为矩阵时,逻辑判断里面的每一个元素 if rem(x,2)==0
disp('x is even');
end
%判断是否全为偶数  ,双分支
x=input('输入x=');
if rem(x,2)==0
disp('x is all even');
else
disp('x is not all even');
end
%计算
段函
数                                                : 程序如下:
x=input('请输入x 的值:');
if x<0
y=log(x*x+1)+sqrt(x*x+1);
else
y=sin(x)/(x+1);
end
disp(y)
2ln(1)0sin 01x x y x x x ⎧++<⎪=⎨⎪+⎩,≥
多分支if语句:例2-4
% %判断是否全为偶数,多分支
x=input('输入x=');
if isempty(x)
disp('x is empty')
elseif isnan(x)
disp('x is not a number')
elseif isinf(x)
disp('x is a inf')
elseif isstr(x)
disp('x is a string')
elseif rem(x,2)==0
disp('x is all even');
else disp('x is not all even');
end
%输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数的平方,若为其他字符则原样输出。
c=input('请输入一个字符','s');
if c>='A' & c<='Z'
disp(lower(c));
elseif c>='a'& c<='z'
disp(upper(c));
elseif c>='0'& c<='9'
disp(str2num(c)^2);
else
disp(c);
end
switch语句例2-5:
5

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