我刚开始学习MATLAB(和所有重要的程序设计)。 我已经能够做一些关于标量,矢量和矩阵操作,索引,绘图和脚本的练习。当然,我只是在尝试非常基础的水平练习。我跑到这一个,并没有能够解决它:如何用一个字符串向量的元素替换一个向量的特定元素?
我有一个17x1列矢量由1到5之间的整数,它代表了一组学生的平均成绩。我必须用字母F,D,C,B,A来替换数字,以便现在以字母表示成绩。等
grades(grades == 1) = 'F'
grades(grades == 2) = 'D'
而且,但我几乎可以肯定,这不是最有效的方法,也不是由课程(我使用一个预期: 现在,我可以用一个非常简单的方法MIT的开放课程)。特别由于提示之一是创建一个字符串矢量:
letters = 'FDCBA'
此外,这取代了1〜5的整数65至70的整数(而不是字母)。所以,我的问题是,有没有一个简洁的方法来做到这一点?我知道在这种情况下,不管我是否有几行额外的代码都不是那么重要,但我仍然想知道在这个练习中矢量字母的作用。也许:
grades(grades == 1) = letters(1)
或者使用一个循环和一个辅助变量来取代的等级等于数“k”与字母的第k个元件元素。虽然第一个讲座没有提到循环,但我想有一个简明的方法来使用基本的索引函数和向量操作来完成这个任务。 我提前道歉,我知道这可能是一个非常基本的问题。
非常感谢您的详细解释,它完全回答了问题本身,以及我遇到的其他问题。 @Grebu的答案也正是我所寻找的,我很欣赏建议为字符矢量创建一个新变量,而不是覆盖数字等级矢量。 –