1、编程中的一个重要概念是将一个命令的输出用作另一个命令的输入。已知代码使用方括号将小鼠的年龄放入一个名为 ages 的数组中,然后通过测试年龄是否小于 70 天,将该变量转换为逻辑数组,代码如下:ages = [mouse.age]; ages = ages<70; 请使用一行代码执行相同的操作。
ages = [mouse.age] < 70;
2、判断以下三行代码是否会产生不同的结果,并解释原因。同样,先思考答案,然后在MATLAB中进行验证。代码分别为:0:.1:(2>1); (0:.1:2)>1; 0:.1:2>1
这三行代码会产生不同的结果。
- 第一行
0:.1:(2>1),因为2>1结果为逻辑真即1,所以是从0以0.1为步长到1生成向量; - 第二行
(0:.1:2)>1是先生成从0到2以0.1为步长的向量,再将向量中每个元素与1比较,得到逻辑向量; - 第三行
0:.1:2>1先计算2>1为逻辑真即1,再从0以0.1为步长到1生成向量,虽然形式上和第一行计算过程有区别,但结果相同。不过和第二行结果不同。
3、使用冒号运算符和方括号,创建一个从 1 数到 10 再降回 1 的数组,确保 10 不重复。然后给数组中的所有元素加 4。最后测试每个元素是否等于 8。
- 创建数组:
arr = [1:10 9:-1:1]; - 给数组元素加 4:
arr = arr + 4; - 测试每个元素是否等于 8:
result = arr == 8;
4、以下两行代码有什么区别?clear a; clear a*
clear a用于清除名为a的变量;clear a*用于清除所有以a开头的变量。
5、已知存在小鼠结构体,结构体中有一个字段为 numElectrodes 表示小鼠的电极数量,编写一行代码来计算两只小鼠的电极总数(求和的 MATLAB 函数是 sum)。
sum([mouse(1).numElectrodes mouse(2).numElectrodes])
6、初始化一个变量,使其为一个 50×40 的零矩阵。然后,对于第二维的前 20 个元素,将第一维的前 10 个元素的值设为 10,最后 5 个元素的值设为 5。
在 MATLAB 中可以按以下步骤实现:
- 首先,使用
zeros函数初始化一个 50×40 的零矩阵。 - 然后,使用索引操作将第二维的前 20 个元素中,第一维的前 10 个元素赋值为 10,最后 5 个元素赋值为 5。
代码如下:
mat = zeros(50, 40);
mat(1:10, 1:20) = 10;
mat(46:50, 1:20) = 5;
上述代码首先创建了名为 mat 的 50×40 零矩阵,接着对矩阵的指定部分进行赋值。
7、将以下数学表达式转换为 MATLAB 代码。(a) 4 + 5 / 4;(b) 19 × 48 - 4;(c) 4 / 3 + 8;(d) 4 + 3 / 8;(e) (-4.5 + 39.2) / (17.26 × 3 - 4)
以下是对给定文本内容调整为 Markdown 格式的输出:
给定的表达式:
(a) 4 + 5/4
(b) 19 * 48 - 4
(c) 4/3 + 8
(d) 4 + 3/8
(e) (-4.5 + 39.2) / (17.26 * 3 - 4)
8、以下几行代码有什么区别?n = zeros(3,5)/0; n = 3+ones(3,5)/0; n = nan(3,5);
`n = zeros(3,5)/0`:先创建一个3行5列的全零矩阵,再将其除以0,结果矩阵的每个元素都是`NaN`。
`n = 3+ones(3,5)/0`:先创建一个3行5列的全1矩阵,将其除以0得到每个元素为`NaN`的矩阵,再加3,结果矩阵每个元素依然是`NaN`。
`n = nan(3,5)`:直接创建一个3行5列、元素全为`NaN`的矩阵。
三者结果矩阵元素都为`NaN`,但计算过程不同。
9、以下哪些变量名合法,哪些不合法?对于不合法的,如何修正这些名称?对于合法的,这些名称是否适合使用,为什么?变量名有:data4analysis、7mac11、iHeartData!、j、data - set、data set、filter、thisOldVariable、variablesRgr8、this_is_a_variable_i_will_use_for_analysis_results、polyfit
# 合法的变量名及分析
1. **data4analysis**:合法,是好名字,能体现用于数据分析的数据,有一定含义。
2. **j**:合法,但不是好名字,缺乏明确含义,尤其是在长脚本中使用易造成混淆。
3. **thisOldVariable**:合法,有一定描述性,但含义不够精准,不过比单字母变量好。
4. **variablesRgr8**:合法,但表述不直观,难以理解变量内容。
5. **this_is_a_variable_i_will

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



