处理矩阵,输入数值
7次浏览(最近30天)
显示旧的注释
我想要一个像X这样的矩阵
我有一个词ABCD
这个单词的符号是12
矩阵X是
X = 0 (5,5)
我已经决定,它将是这样的:
start开始;start开始
从0 0 0 0 0 0开始
A 0 0 0 0 0 0
B 0 0 0 0 0
C 0 0 0 0 0
D 0 0 0 0 0
我将从start到A,把数字12放在X(start,A)的位置
然后从A到B,把数字12放在X(A,B)的位置
等等......
行是from,列是to
我怎么把数字放在这些位置,我怎么告诉矩阵应该用位置X(3,3)把数字放进去,在给定的单词中,你来到BB,或者在这个例子中我们有ABCD,我怎么告诉矩阵当你来到CD时,在X(4,5)中放一个值12 ?
矩阵X需要了解,如果我开始一个字所以把12号位置X(1、2),那么我来AB,所以我从a到B,所以价值12应该放在X(2,3)等等,直到ABCD词完成(这意味着为公元前做这一次和一次CD,并保存矩阵X的新valuses 12神在这些位置。
有点难以解释,但我希望你能理解
0评论
接受的答案
本杰明·克劳斯
2021年9月23日
你的描述中似乎遗漏了一些东西,比如数字12从哪里来,以及你想如何处理字母序列重复的情况(例如,如果字符串是ABABABA)。但是,这段代码将完成您所指示的工作,您必须解决剩余的细节。
词=“ABCD”;
magicNumber = 12;
首先为每个字母分配一个唯一的索引。
[uniqueLetters,~,ind] = unique(单词);
X = 0 (nummel (uniqueLetters)+1);
%增加唯一索引以说明“开始”索引。
Ind = Ind (:)'+1;
在开头加上“1”表示“开始”。
Ind = [1 Ind];
循环遍历索引向量,记录配对。
为P = 1:数字(单词)
注意,如果是一对字母,这只会覆盖前面的值
%是重复的。
X(ind(p),ind(p+1)) = magicNumber;
结束
disp (X)
为了好玩,将其放入一个表中,这样您就有了漂亮的行标题和列标题。
标签= [“开始”;字符串(uniqueLetters '));
tbl = array2table(X,“RowNames”、标签“VariableNames”、标签);
disp(台)