MATLAB编程与工程应用(第二版)第1章习题解答

答案来自于Charles Sun 欢迎指正。

  • 1.创建变量myage,并存储你的年龄。将该变量的值减1,然后再给变量的值加2。
    >> myage=21;
    >> myage=myage-1;
    >> myage=myage+2;

  • 2.创建一个变量myage并存储你的年龄。将变量值减1;将变量值加2。
    >> myage=21;
    >> myage=myage-1;
    >> myage=myage+2;

  • 3.使用内置函数namelengthmax找出在你所用的MATLAB版本中标识符名称的最大长度。
    >> namelengthmax
    ans =
    63

  • 4.探索format命令的更多应用细节。使用 help format 找出各种选项,并用format bank 命令上机显示美元币值格式。
    >>format bank
    >>1/3
    ans=
    0.33

  • 5.找出一个能得到如下输出格式的format选项:
    >>5/6+2/7
    ans=
    67/112
    >>format rat

  • 6.先考虑如下表达式的结果,然后上机验证之。
    25/4*4
    3 + 4^2
    4\12 +4
    3^2
    (5 - 2) * 3
    此题为了让你了解运算符顺序,很简单,自行上机实验

  • 7.创建一个pounds变量,以磅为单位来存储重量。将这个重量转化为千克,然后将结果赋给变量kilos。转换关系是1千克=2.2磅。
    >> pounds=50;
    >> kilos=2.2*pounds
    kilos =
    110.0000

  • 8.由三个并联电阻R1,R2,R3给出的总电阻RT可用下式求出:
    RT=1/(1/R_1 +1/R_2 +1/R_3 )
    创建三个电阻变量并存储每个变量的值,计算总电阻RT的值。
    >> R1=1;
    >> R2=2;
    >> R3=3;
    >> RT=1/(1/R1+1/R2+1/R3);
    >> RT
    RT =
    0.5455

  • 9.创建一个ftemp变量,存储单位为华氏度(F)的温度值。将这个值转换为摄氏温度值,并将其结果存储在变量ctemp中。转换公式是C=(F-32)x 5/9。
    >>ftemp=100;
    >>ctemp=(ftemp-32)*5/9
    ctemp =
    37.7778

  • 10.给出一个具有某单位量纲的数值,然后将其转换成另一量纲下的数值。
    。。。。

  • 11.sin函数可以计算并返回以弧度为单位的角度的正弦值。使用help elfun来查找能返回以度为单位的角度的正弦函数名。调用这个函数,以90度为参数验证其结果为1。
    >> sind(90)
    ans =
    1

  • 12.一个向量可以用笛卡尔坐标x和y表示,也可以用极坐标r和θ来表示。它们之间的关系如下面的方程所示:
                 x= r x cos(θ)
                 y= r x sin(θ)
    给极坐标变量r和θ赋值,然后计算相应的笛卡尔坐标x和y。
    >> r=3;
    >> O=45;
    >> x=r*cosd(O);

  • 13.风通常能使人感觉到气温比实际更低。在给定气温T(华氏度)和风速V(英里/每小时)的条件下,用风冷因子(Wind Chill Factor,WCF)测量冷的程度。对WCF的一个测量公式是:
    WCF=35.7+0.6T-35.7(V0.16)+0.43T(V0.16)
    定义温度T和风速V变量并给其赋值,用上式计算WCF的值。
    >> T=40;
    >> V=6;
    >> WCF=35.7+0.6T-35.7(V0.16)+0.43T(V0.16)
    WCF =
    41.9400

  • 14.用help elfun或实验的方法来回答下面的问题:

    • fix(3.5)和floor(3.5)一样吗?
    • fix(3.4)和fix(-3.4)一样吗?
    • fix(3.2)和floor(3.2)一样吗?
    • fix(-3.2)和floor(-3.2)一样吗?
    • fix(-3.2)和ceil(-3.2)一样吗?
      >> fix(3.5)
      ans =
      3
      >> floor(3.5)
      ans =
      3
      >> fix(3.4)
      ans =
      3
      >> fix(-3.4)
      ans =
      -3
      >> fix(3.2)
      ans =
      3
      >> floor(3.2)
      ans =
      3
      >> fix(-3.2)
      ans =
      -3
      >> floor(-3.2)
      ans =
      -4
      >> fix(-3.2)
      ans =
      -3
      >> ceil(-3.2)
      ans =
      -3
  • 15.写出在MATLAB中下面表达式的表示方式:
    根号19
    3的1.2次方
    tan(π)
    sqrt(19)
    3^1.2
    tan(pi)

  • 16.用intmin和intmax来确定int32与int64类型各自存储的值的范围。
    >> intmin('int32')
    ans =
    -2147483648
    >> intmax('int32')
    ans =
    2147483647
    >> intmin('int64')
    ans =
    -9223372036854775808
    >> intmax('int64')
    ans =
    9223372036854775807

  • 17.对实数来说是否也有和intmin、intmax等效的函数?用help查找一下。
    >> realmax('double')
    ans =
    1.7977e+308
    >> realmin('double')
    ans =
    2.2251e-308
    - 18.用double型(默认)变量存储一个小数。将变量的值转换为int32类型,并将结果存在一个新变量里。
    \>> DoubleNum=37.5;
    \>> int32Num=int32(DoubleNum)
    int32Num =
        38

  • 19.产生一个随机数:

    • 范围在0到1之间的实数
    • 范围在0到20之间的实数
    • 范围在20到50之间的实数
    • 范围在0到10之间的整数
    • 范围在0到11之间的整数
    • 范围在50到100之间的整数
      >> rand
      >> rand*20
      >> rand*30+20
      >> randi(10)
      >> randi(11)
      >> randi(50)+50
  • 20.。。。

  • 21.在ASCII字符编码中,字母表中的字母按一定顺序排列,即a在b前,同样A在B前。然而,大写和小写字母哪个在前呢?
    >> double('A')
    ans =
    65
    >> double('a')
    ans =
    97

  • 22.按字符编码的方法,将字符串'xyz' 向前移动两个字符的位置。
    >> charName='xyz';
    >> charName=char(charName-2)
    charName =
    vwx

  • 23.使用冒号操作符,创建下面的向量:
    3 4 5 6
    1.0000 1.5000 2.0000 2.5000 3.0000
    5 4 3 2
    >> vec=[3:1:6]
    vec =
    3 4 5 6
    >> vec1=[1.0000:0.5000:3.0000]
    vec1 =
    1.0000 1.5000 2.0000 2.5000 3.0000
    >> vec2=[5:-1:2]
    vec2 =
    5 4 3 2

  • 24.用linspace函数,创建下面的向量:
    4 6 8
    -3 -6 -9 -12 -15
    9 7 5
    >> vec=linspace(4,8,3)
    vec =
    4 6 8
    >> vec1=linspace(-3,-15,5)
    vec1 =
    -3 -6 -9 -12 -15
    >> vec2=linspace(9,5,3)
    vec2 =
    9 7 5

  • 25.分别使用linspace函数和冒号操作符创建下面的向量:
    1 2 3 4 5 6 7 8 9 10
    2 7 12
    >> vec=[1:10]
    vec =
    1 2 3 4 5 6 7 8 9 10
    >> vec1=linspace(1,10,10)
    vec1 =
    1 2 3 4 5 6 7 8 9 10
    >> vec2=[2:5:12]
    vec2 =
    2 7 12
    >> vec3=linspace(2,12,3)
    vec3 =
    2 7 12

  • 26.创建一个myend变量,存储范围在8到12之间的随机整数。使用冒号操作符,创建一个范围从1到myend且步长是3的向量。
    >> myend=randi(4)+8;
    >> vec=[0:3:myend]
    vec =
    0 3 6 9

  • 27.使用冒号操作符和转置操作符,创建一个值在-1到1之间,步长为0.2的列向量。
    >> vec=[-1:0.2:1]'

  • 28.写一个表达式查找向量中位置为奇数的元素,不考虑向量的长度。上机用向量测试所写表达式的正确性,向量中既有奇数也有偶数。
    >> vec=[1:10];
    >> n=[1:2:numel(vec)];
    >> vec2=vec(n)
    vec2 =
    1 3 5 7 9

  • 29.创建一个向量变量vec,长度任意。然后写一个赋值语句,将向量的前半部分存储在一个变量中,后半部分存储在另一个变量中。确保赋值语句的通用性,并且计算vec向量元素的个数是奇数还是偶数(提示:使用四舍五入函数,如fix)。
    。。。

  • 30.产生一个2 x 3的随机数矩阵:

    • 实数,每个数的范围为0到1
    • 实数,每个数的范围为0到10
    • 整数,每个数的范围为5到20
      >> rand(3,2)
      >> 10*rand(3,2)
      >> randi([5,20],2,3)
  • 31.创建一个向量变量vec,取值是1到5之间的随机整数。创建一个cols变量,取值是1到5之间的随机整数。创建一个全零矩阵,其维数由rows和cols的值给出。
    >> rows=randi(4)+1;
    >> cols=randi(4)+1;
    >> zeros(rows,cols)

  • 32.采用一个有效的方法来创建下面的矩阵:
    mat=
    7 8 9 10
    12 10 8 6
    然后,给出矩阵mat的表达式,

      • 定位到第一行、第三列的元素
      • 定位到整个第二行
      • 查找前两列
        >> mat=[7:10;12:-2:6]
        mat =
        7 8 9 10
        12 10 8 6
        >> mat(1,3)
        ans =
        9
        >> mat(2,:)
        ans =
        12 10 8 6
        >> mat(:,1:2)
        ans =
        7 8
        12 10
  • 33.创建一个2 x 3的矩阵变量mymat。将该矩阵变量传递给下面的每个函数并确保你理解它们的结果:fliplr、flipud和rot90。可以有多少种方法重建它?
    >> mymat=[1,2,3;4,5,6];
    >> fliplr(mymat);
    >> flipud(mymat);
    >> rot90(mymat);

  • 34.创建一个4 x 2的零矩阵,并将其存储在一个变量中。然后,把矩阵中第二行的值换成3和6。
    >> x=zeros(4,2);
    >> x(2,:)=[3;6]
    x =
    0 0
    3 6
    0 0
    0 0

  • 35.创建一个向量x,它包括均匀分布在-π到π之间的20个数。创建一个y向量,其值为sin(x)。
    >> x=linspace(-pi,pi,20);
    >> y=sin(x)

  • 36.创建一个3 x 5的随机整数矩阵,每个值的范围在-5到5之间,再用sign获得每个元素的值。
    >> a=randi([-5,5],3,5);
    >> b=sign(a)

  • 37.创建一个4 x 6 的随机整数矩阵,每个值的范围在-5到5之间,并将其存储在一个变量中。创建另外一个矩阵,对应存储原始矩阵中每个元素的绝对值。
    >> a=randi([-5,5],4,6);
    >> b=abs(a)

  • 38.创建一个3 x 5 的随机实数矩阵,删除第三行。
    >> a=rand(3,5);
    >> a(3,:)=[]
    >> y=r*sind(O);

  • 39.创建一个向量变量vec。假设你不知道有多少个元素在向量中(即要使你的表达式通用),给出尽可能多的表达式来获取向量中的最后一个元素。
    >>vec = 1 : 1:1000;
    >>vec(end)
    >>vec(numel(vec))

  • 40.创建一个矩阵变量mat。假设你不知道有多少个元素、多少行和列在矩阵中,给出尽可能多的表达式来获取矩阵中的最后一个元素。
    同上

  • 41.创建一个三维矩阵并获取其大小。
    >> mat = zeros(3,5);
    >> mat(:,:,1) = zeros(3,5);
    >> mat(:,:,2) = zeros(3,5);

  • 42
    >>myc = clock
    >> today = myc(1:3)
    >> now = myc(4:6)
    >> now = fix(now)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 欧拉旋转、四元数、矩阵旋转之间的差异 除了欧拉旋转以外,还有两种表示旋转的方式:矩阵旋转和四元数旋转。接下来我们比...
    AndrewFan阅读 2,500评论 0 3
  • 变换(Transformations) 我们可以尝试着在每一帧改变物体的顶点并且重设缓冲区从而使他们移动,但这太繁...
    IceMJ阅读 4,081评论 0 1
  • 一前言 特征值 奇异值 二奇异值计算 三PCA 1)数据的向量表示及降维问题 2)向量的表示及基变换 3)基向量 ...
    Arya鑫阅读 10,487评论 2 43
  • 版本记录 前言 OpenGL 图形库项目中一直也没用过,最近也想学着使用这个图形库,感觉还是很有意思,也就自然想着...
    刀客传奇阅读 5,102评论 0 3
  • 喜欢的东西 都被搁置在了一旁 主动的 被动的 一点一点越来越多 都在属于它们的角落里 静静地沉睡 蒙上厚厚的灰尘 ...
    摆先生阅读 230评论 1 3