matlab - 获取矩阵中的字符串索引

标签 matlab

我在matlab中有以下字符串

V= 'abcdefghijklmnñopqrstuvwxyz';

然后我有一个由 9 个字符组成的单词,由我的“V”字母表中的字符组成。

k = 'peligroso';

我想根据我的字母表用我的单词“k”的索引创建一个方阵 (3x3),这将是输出。 (请注意,我考虑的范围是 0 到 26,所以 'a' 字符确实有索引 0)

   16    4     11
   8     6     18
   15    19    15

My code for doing this is:

K = [findstr(V, k(1))-1 findstr(V, k(2))-1 findstr(V, k(3))-1;findstr(V, k(4))-1 findstr(V, k(5))-1 findstr(V, k(6))-1; findstr(V, k(7))-1 findstr(V, k(8))-1 findstr(V, k(9))-1];

但我认为必须有更优雅的解决方案来实现相同的目标,有什么想法吗?

PS:我没有使用 ASCII 值,因为字符 'ñ' 必须在我的字母表中

最佳答案

对于无循环解决方案,您可以使用 ISMEMBER ,它适用于字符串和数字:

K = zeros(3); %# create 3x3 array of zeros

[~,K(:)] = ismember(k,V); %# fill in indices

K = K'-1; %# make K conform to expected output

关于matlab - 获取矩阵中的字符串索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048348/

相关文章:

algorithm - 置换矩阵的某些 block

Matlab - 查找每个零矩阵元素的最近非零元素的索引

MATLAB 向量、角度、绘图

Matlab GPU计算

matlab - 在滤波器设计中使用Matlab的sinc()?

matlab - k-均值聚类的不规则图,异常值去除

Matlab:帮助运行卡尔曼滤波器工具箱

image - 在 Matlab 中裁剪图像

matlab - 给定两组向量,如何为第一组中的每个向量找到第二组中最接近的向量?

matlab - 如何在直方图箱上方显示标签?