Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
参考表:MATLAB_Matlab - Fatal编程技术网

参考表:MATLAB

参考表:MATLAB,matlab,Matlab,我正在使用a,它要求我对名称的文本文件进行排序,然后根据名称中每个字母的字母位置(即,“Bob”=2,15,2)为每个字母分配一个值 我想用excel中的VLOOKUP函数来解决这个问题。我想用字母表中的字母按字母顺序创建一个参考列向量——每个字母在参考向量中的位置就是它的“值”。然后我可以在我的名字表中取一个条目,比如“BOB”,然后查找参考向量中的值B、O和B,输出它们的位置,从而输出每个字母的值 我的问题:如何将一个矩阵中的值引用到另一个向量中的值?谢谢大家在这方面的帮助。除非性能是这里真

我正在使用a,它要求我对名称的文本文件进行排序,然后根据名称中每个字母的字母位置(即,“Bob”=2,15,2)为每个字母分配一个值

我想用excel中的VLOOKUP函数来解决这个问题。我想用字母表中的字母按字母顺序创建一个参考列向量——每个字母在参考向量中的位置就是它的“值”。然后我可以在我的名字表中取一个条目,比如“BOB”,然后查找参考向量中的值B、O和B,输出它们的位置,从而输出每个字母的值


我的问题:如何将一个矩阵中的值引用到另一个向量中的值?谢谢大家在这方面的帮助。

除非性能是这里真正关心的问题,否则我不会为查找表而烦恼。有一种简单的方法可以将字符转换为数字

取每个字符串,使用大写字母
upper
,减去“A”,再加上一个,将所有“A”转换为“1”,将“B”转换为“2”,等等

s = 'Bob';
num_s = upper(s) - 'A' + 1;

我仍然很好奇,也许是为了我自己的发展,学习如何检查一个字符,将它与另一个向量中的条目相匹配,并回忆它对应的值用户1499689

在Matlab中实现这一点很容易。假设您有一个包含26个元素的查找表,
lookup

lookup = zeros(26,1);
% define the lookup table
for i=1:numel(lookup)
  lookup(i) = 2*i - 7;   % some random function
end
现在,使用上面的字符到数字的转换:

s =

Joe

>> lookup( upper(s) - 'A' + 1 )

ans =

    13
    23
     3
这里的关键是,Matlab允许您使用另一个矩阵对任何矩阵进行索引:
M(A)
。矩阵
A
的元素被视为矩阵
M
的索引。字符串
s
是一个字符矩阵,通过减去
'a'
可以将其转换为数字矩阵。行
lookup(…)
然后使用此转换矩阵的元素为矩阵
lookup
编制索引

顺便提一下,这也可以用于分配。例如,如果您希望保留每个字符的计数(独立于大小写):


您需要一种生成各种查找表的方法。我们将使用你们这里的一般示例。字母表中有26个字母,区分大小写

Basic_lookup = 1:26; % Note: this can be changed up if you want some level of randomness.
% Basic_lookup = randperm(26); % I like this a bit better for randomness sake.  And is just an example of making it random.

这是一个从1到26的单行向量。您所需要做的只是逐个值地遍历字符串,然后从查找表中调用所需的值@Sfstrowman在他们的帖子中对此进行了一定程度的详细说明。你可以很容易地从中适应。

此外,只需注意一下。。。如果你想考虑大小写,你需要修改上面的代码,以适应大小写。这是一个很棒的帮助-肯定是一个更好的解决方案。谢谢大家。我仍然很好奇,也许是为了我自己的发展,学习如何检查一个字符,将它与另一个向量中的一个条目相匹配,并回忆它对应的一个值。@iCodez:噢!我想知道为什么这些关于欧拉计划的问题不断出现@knedlsepp-是的,很抱歉轰炸了“活动”页面。:)我们正在烧掉标签。它应该在一小时内被销毁。
Basic_lookup = 1:26; % Note: this can be changed up if you want some level of randomness.
% Basic_lookup = randperm(26); % I like this a bit better for randomness sake.  And is just an example of making it random.