如何在matlab中将字符串数组转换为数字?

Gla*_*wed 1 matlab

我有一个单元格数组{'W','L','D','D','W'}.我想将其转换为{-1,0,1}数组,其中'W'映射为1,'D'映射为0,'L'映射为-1.

没有编写循环,有没有快速的方法来做到这一点?

Edr*_*ric 6

您可以使用categorical数组在单个表达式中执行此操作

double(categorical({'W','L','D','D','W'}, {'L', 'D', 'W'})) - 2
Run Code Online (Sandbox Code Playgroud)

或者对于R2013b之前的MATLAB,您可以执行两个表达式:

[~, loc] = ismember({'W','L','D','D','W'}, {'L', 'D', 'W'});
result = loc - 2;
Run Code Online (Sandbox Code Playgroud)