【发布时间】:2016-02-01 19:46:11
【问题描述】:
我刚刚开始学习 MATLAB(以及所有重要的编程)。 我已经能够做一些关于标量、向量和矩阵运算、索引、绘图和脚本的练习。当然,我只是在尝试非常基础的练习。我遇到了这个,一直没能解决:
我有一个 17x1 的列向量,由 1 到 5 之间的整数组成,代表一组学生的平均成绩。我必须用字母 F、D、C、B、A 替换数字,以便成绩现在用字母表示。 现在,我可以使用一个非常简单的方法:
grades(grades == 1) = 'F'
grades(grades == 2) = 'D'
等等,但我几乎可以肯定这不是最有效的方法,也不是课程的预期(我正在使用麻省理工学院的开放课程之一)。特别是因为其中一个提示是创建一个字符串向量:
letters = 'FDCBA'
此外,这会将 1 到 5 个整数替换为 65 到 70 个整数(而不是字母)。所以,我的问题是,有没有一种简洁的方法来做到这一点?我知道在这种特殊情况下,我是否有几行额外的代码并不那么重要,但我仍然想了解向量 letters 在这个练习。也许:
grades(grades == 1) = letters(1)
或者使用循环和辅助变量将grades等于'k'的元素替换为的kth元素字母。虽然第一讲没有提到循环,但我想有一种简洁的方法可以使用基本的索引函数和向量操作来做到这一点。 我提前道歉,我知道这可能是一个非常基本的问题。
【问题讨论】:
标签: string matlab vector indexing