处理矩阵,输入数值

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神在这些位置。
有点难以解释,但我希望你能理解

接受的答案

本杰明·克劳斯
本杰明·克劳斯 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(台)
5个评论
Nicle戴维森
Nicle戴维森 2021年9月24日
编辑:Nicle戴维森 2021年9月24日
谢谢你! @Benjamin克劳斯 为了你宝贵的答案,你的时间和精力。
然而,加法问题就像我们回到上一个问题一样,需要把数字加到这些位置上,比如我们有12 Ellen,那么X(start,E)应该是12,X(E,l)应该是12,等等。
然后我们来到文件的下一行,它是15 Lenon,所以X(start,L)应该是15,X(L,e)应该是15,'but'现在X(e,n)应该是12+15也是27,然后X(n,o)应该是15,等等。
它将象征有多少次,例如,从'n'开始到'o'的组合被使用。在第一个单词中,它被使用了12次,数字12代表这个。在我们从文本文档中读取的第二个单词或文本行中,它被使用了15次。因此我们应该跟踪这个组合被使用了多少次。
如你所述,我将为此做一个新的帖子。你知道我应该怎么引用这篇文章吗?是否有参考编号或特别的方法
谢谢你的回答,我学到了很多,我会选择接受,但是问题还没有解决。
任何帮助都会很感激。请参阅问题的进一步链接:
https://se.mathworks.com/matlabcentral/answers/1459764-working-with-numbers-and-matrix

登录评论。

更多答案(0)

类别

了解更多有关创建和连接矩阵帮助中心文件交换

标签

社区寻宝

在MATLAB Central中寻找宝藏,并了解社区如何帮助您!

开始狩猎!