Chapter 4. MATLAB语法基础
2013-12-15 23:37
316 查看
第四章课后习题解答
转载请注明链接:http://blog.csdn.net/i_love_home/article/details/173403411. 从键盘输入一个4位证书,按如下规则加密后,输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位和第三位交换,第二位和第四位交换。
x = 0; x = input('Enter a number of four:'); a = zeros(1, 4); a(1) = floor(x / 1000) a(2) = floor(rem(x/100, 10)); a(3) = floor(rem(x, 100) / 10); a(4) = rem(x, 10); a = rem(a + 7*ones(size(a)), 10); A = [a(3), a(4), a(1), a(2)]; disp(['A = ' num2str(A)]);
2. 分别用if语句和switch语句实现以下计算,其中a,b,c的值从键盘输入。
x = 0.5;a = 0;b = 0;c = 0; x = input('Enter an number[0.5, 5.5):'); a = input('a = '); b = input('b = '); c = input('c = '); y = 0; % if if x>=0.5 & x<1.5 y = a*x^2 + b*x + c; elseif x>=1.5 & x<3.5 y = a*(sin(b)^c) + x; elseif x>=3.5 & x<5.5 y = log(abs(b+c/x)); end disp(['y = ' num2str(y)]); % switch switch floor(x*2) case {1, 2} y = a*x^2 + b*x + c; case {3, 4, 5, 6} y = a*(sin(b)^c) + x; case {7, 8, 9, 10} y = log(abs(b+c/x)); end disp(['y = ' num2str(y)]);
3. 产生20个两位随机整数,输出其中小于平均数值的偶数。
A = 10 + floor(90*rand(1, 20)); ave = sum(A) / size(A, 2); p = find(A<ave & rem(A, 2)==0); disp(['solution: ' num2str(A(p))]);
4. 输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数,min函数来实现。
x = rand(1, 20); x = input('Enter 20 numbers of matrix:'); % min(), max() disp(['min = ' num2str(min(x))]); disp(['max = ' num2str(max(x))]); % for minc = inf; maxc = -inf; for i = 1 : size(x, 2) if x(i) < minc minc = x(i); end if x(i) > maxc maxc = x(i); end end disp(['min = ' num2str(minc)]); disp(['max = ' num2str(maxc)]);
5. 已知:
n = 0 : 63; s = 0; % sum s = sum(2.^n); disp(['1 + 2 + 2^2 + … + 2^63 = ' num2str(s)]); % for s = 0; temp = 1; for i = 1 : size(n, 2) s = s + temp; temp = temp * 2; end disp(['1 + 2 + 2^2 + … + 2^63 = ' num2str(s)]);
6. 当n分别取100,1000,10000时,求下列各式的值。
n = 1000; n = input('n = '); % sum + pro % (1) i = 1 : n; s = sum((-1).^(i+1).*(1./i)); disp(['s = ' num2str(s)]); % (2) i = 2*(1:n)-1; s = sum((-1).^(0:n-1).*(1./i)); disp(['s = ' num2str(s)]); % (3) s = sum(1./(4.^(1:n))); disp(['s = ' num2str(s)]); % (4) i = 1 : n; s = prod(((2*i).*(2*i))./((2*i-1).*(2*i+1))); disp(['s = ' num2str(s)]); % for % (1) s = 0; for i = 1 : n s = s + (-1)^(i-1)*(1/i); end disp(['s = ' num2str(s)]); % (2) s = 0; for i = 1 : n s = s + (-1)^(i-1)*(1/(2*i-1)); end disp(['s = ' num2str(s)]); % (3) s = 0; for i = 1 : n; s = s + 1/(4^i); end disp(['s = ' num2str(s)]); % (4) s = 1; for i = 1 : n s = s * (4*i*i)/((2*i-1)*(2*i+1)); end disp(['s = ' num2str(s)]);
7. 编写一个函数文件,求小于任意自然数n的斐波那契(Fibnacci)数列各项。斐波那契数列定义如下:
n = 1; n = input('n = '); disp(['f(n) = ' num2str(Fibnacci_2_7( n ))]);
function F = Fibnacci_2_7( n ) if n == 1 F = 1; elseif n == 2 F = 1; else F = Fibnacci_2_7( n-1 ) + Fibnacci_2_7( n-2 ); end
8. 编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。
A = eye(4); B = magic(4); [C, P] = matmulCP_2_8(A, B);
// matmulCP_2_8.m function [C, P] = matmulCP_2_8( A, B ); C = A * B; P = A .* B;
9. 先用函数的递归调用定义一个函数文件
disp(['s = ' num2str(sum_2_9(100, 1) + sum_2_9(50, 2) + sum_2_9(10, -1))]);
// sum_2_9.m function fun = sum_2_9( n, m ) i = 1 : n; fun = sum( i.^m );
10. 写出下列程序的输出结果。
// First: s = 108 // Second x = 3 9 15 y = 2 4 6 // code s = 0; a = [12:14; 15:17; 18:20; 21:23]; for k = a for j = 1 : 4 if rem(k(j), 2) ~= 0 s = s + k(j); end end end disp(['s = ' num2str(s)]); global gx; gx = 1 : 2 : 5; y = 2 : 2 : 6; sub_2_10(y); disp(['x = ' num2str(gx)]); disp(['y = ' num2str(y)]);
// sub_2_9.m function fun = sub_2_10( z ) global gx; z = 2 * gx; gx = gx + z;
相关文章推荐
- matlab语法基础
- PHP - Smarty模板引擎 - 翻译 - Manual手册 - Chapter 3. Basic Syntax第3章 基础语法 - Comments注释
- Chapter 5. MATLAB基础绘图
- Chapter 3、Java语法基础(一)---- Java程序基本结构 (19th,Feb)
- matlab 基础语法笔记(一)
- matlab基础语法笔记(二)
- Think in Java 笔记_Chapter20_1_Annocation基础语法
- Chapter 3、Java语法基础(三)--- 运算符、数据类型转换 (22nd,Feb)
- matlab基本语法和运算基础
- Matlab基础语法
- matlab基本语法和运算基础
- Chapter 3、Java语法基础(二)----Java基本数据类型、变量与常量 (20th,Feb)
- matlab基本语法和运算基础
- Smarty - Manual手册 - Chapter 3. Basic Syntax第3章 基础语法 - Math数学运算
- Kotlin 基础语法
- XML-基础(介绍、语法、dtd约束)
- 第一章:Python基础の快速认识基本语法
- node.js基础语法
- python基础语法(1)
- java基础语法学习笔记(四)