MATLAB编程基础:SAP HANA与Oracle Exadata比较

需积分: 47 9 下载量 68 浏览量 更新于2024-08-09 收藏 6.39MB PDF 举报
"这篇资源主要涉及的是编程相关的知识,特别是MATLAB编程的实践问题和基本操作。通过一系列的问题和解答,旨在帮助读者理解和掌握数组操作、变量命名规则、数组属性查询以及数值表示方法。此外,还涉及到MATLAB中的算术运算、逻辑运算以及程序控制结构。" 在MATLAB中,数组是数据处理的基础。在给出的数组`array1`中,我们可以进行以下分析: a. `array1`的大小可以通过观察得出,它是一个4x5的矩阵。 b. `array1(4,1)`的值是1.1,这是矩阵中第四行第一列的元素。 c. `array1(:,1:2)`会选取第一列到第二列的所有行,得到一个4x2的矩阵,具体值需要查看原始数组。 d. `array1([1 3],end)`选取第一行和第三行的最后一个元素,其大小为2x1。 关于变量命名的合法性: a. `dog1`是合法的,因为它以字母开头,可以包含字母、数字和下划线。 b. `1dog`是非法的,因为它以数字开头。 c. `Do_you_know_the_way_to_san_jose`是非法的,因为包含空格。 d. `_help`是合法的,虽然不常见,但以下划线开头是可以的。 e. `What's_up?`是非法的,因为包含非字母数字字符。 接下来是一些数组操作的例子: a. `a=1:2:5`定义了一个从1到5,步长为2的向量。 b. `b=[a' a' a']`创建了一个3x3的矩阵,每一列都是`a`。 c. `c=b(1:2:3,1:2:3)`取`b`矩阵的偶数行和偶数列,得到一个2x2的矩阵。 d. `d=a+b(2,:)`将`a`向量与`b`矩阵的第二列相加。 e. `w=[zeros(1,3) ones(3,1)' 3:5']`组合了不同形状的数组。 f. `b([1 3],2)=b([3 1],2)`交换`b`矩阵第一行和第三行的第二个元素。 数值显示的格式: 1. `disp(['value = ' num2str(value)])`会以常规字符串形式显示`value`的值。 2. `disp(['value = ' int2str(value)])`将`value`转换为整数字符串。 3. `fprintf('value = %e\n',value)`使用科学记数法显示`value`。 4. `fprintf('value = %f\n',value)`以固定小数点格式显示`value`。 5. `fprintf('value = %g\n',value)`选择最简洁的表示方式。 6. `fprintf('value = %12.4f\n',value)`以固定宽度和四位小数显示`value`。 最后,针对矩阵`a`, `b`, 和 `c` 的运算: a. `result=a+b`执行元素级加法,结果取决于原始矩阵的大小。 b. `result=a*d`是非法的,因为`a`和`d`尺寸不兼容。 c. `result=a.*d`执行元素级乘法。 d. `result=a*c`尝试执行矩阵乘法,但可能不合法,除非`a`的列数等于`c`的行数。 e. `result=a.*c`执行元素级乘法。 f. `result=a\b`是矩阵除法,假设`a`可逆。 g. `result=a.\b`是左除法,假设`b`可逆。 h. `result=a .^ b`执行元素级指数运算。 表达式求值: a. `11/5+6`计算分数加整数。 b. `(11/5)+b`取决于`b`的值。 c. `11/(5+b)`是分数除法,`b`的值影响结果。 d. `3^2^3`先计算指数,再进行乘方,结果是3的9次方。 e. `3^(2^3)`先计算括号内的指数,然后对3取幂,结果是3的8次方。 f. `(3^2)^3`先进行括号内的乘方,然后再次取幂,结果是3的6次方。 g. `round(-11/5)+6`先取负数分数的近似整数值,然后加6。 h. `ceil(-11/5)+6`取负数分数的上界整数,然后加6。 i. `floor(-11/5)+6`取负数分数的下界整数,然后加6。 这些例子涵盖了MATLAB编程中的基本操作,包括数组操作、变量命名、数值显示以及算术运算。通过这些练习,读者能够加深对MATLAB编程的理解。