str1 = ["A","B","C"]; str2 = ["C","B"];matlab 找出str2中每个字符串在str1中的位置
时间: 2023-09-19 15:08:58 浏览: 86
要在Matlab中找出str2中每个字符串在str1中的位置,可以使用以下代码:
```matlab
str1 = ["A", "B", "C"];
str2 = ["C", "B"];
indices = zeros(1, length(str2)); % 创建一个和str2长度相同的零向量
for i = 1:length(str2)
index = find(strcmp(str1, str2(i))); % 使用strcmp函数比较str2中的每个字符串和str1中的元素
if ~isempty(index) % 如果找到了匹配的字符串,将其索引存储在indices向量中
indices(i) = index(1);
end
end
indices
```
这段代码首先创建了一个与str2长度相同的全零向量indices。然后通过循环遍历str2中的每个字符串,在str1中使用strcmp函数查找匹配的字符串,并将其索引存储在indices向量中。如果没有找到匹配的字符串,则indices中对应位置仍为零。最后输出indices向量,即为str2中每个字符串在str1中的位置。
相关问题
请用matlab语言,定义两个字符串str1=’Welcomw to Guangdong R2016’和str2=’Welcome to Guangdong r2016’,试用字符串比较函数strcmp、strncmp、strcmpi和strncmpi比较str1和str2两个字符串。
可以使用以下MATLAB代码进行字符串比较:
```matlab
% 定义两个字符串
str1 = 'Welcomw to Guangdong R2016';
str2 = 'Welcome to Guangdong r2016';
% 使用 strcmp 函数比较两个字符串,区分大小写
res1 = strcmp(str1, str2);
fprintf('strcmp(str1, str2) = %d\n', res1);
% 使用 strncmp 函数比较两个字符串的前 8 个字符,区分大小写
res2 = strncmp(str1, str2, 8);
fprintf('strncmp(str1, str2, 8) = %d\n', res2);
% 使用 strcmpi 函数比较两个字符串,不区分大小写
res3 = strcmpi(str1, str2);
fprintf('strcmpi(str1, str2) = %d\n', res3);
% 使用 strncmpi 函数比较两个字符串的前 8 个字符,不区分大小写
res4 = strncmpi(str1, str2, 8);
fprintf('strncmpi(str1, str2, 8) = %d\n', res4);
```
运行结果:
```
strcmp(str1, str2) = 0
strncmp(str1, str2, 8) = 1
strcmpi(str1, str2) = 1
strncmpi(str1, str2, 8) = 1
```
解释一下结果:
- strcmp 函数比较两个字符串,区分大小写。因为 `str1` 和 `str2` 中的 'w' 和 'W' 不相等,所以比较结果为 0。
- strncmp 函数比较两个字符串的前 8 个字符,区分大小写。因为前 8 个字符都相等,所以比较结果为 1。
- strcmpi 函数比较两个字符串,不区分大小写。因为 `str1` 和 `str2` 中的 'w' 和 'W' 相等,所以比较结果为 1。
- strncmpi 函数比较两个字符串的前 8 个字符,不区分大小写。因为前 8 个字符都相等,所以比较结果为 1。
matlab中str1 = 'Hello'; str2 = 'World'; str3 = str1 + str2; disp(str3);最后输出数字
在MATLAB中,字符串类型的加法操作符“+”是将两个字符串连接起来。因此,`str1 + str2`的结果将是一个新的字符串,即`HelloWorld`。如果你使用`disp`函数输出这个字符串,将会正确地显示`HelloWorld`。
然而,如果你尝试将这个字符串赋给一个变量(如`str3`),MATLAB会将其作为字符数组处理,即将字符串中的每个字符转换为其对应的ASCII码。因此,`str3`将是一个由字符编码组成的数组,而不是一个字符串。
如果你想要将`str1`和`str2`连接成一个字符串并赋给`str3`,可以使用MATLAB中的字符串函数`strcat`。例如:
```
str3 = strcat(str1, str2);
disp(str3);
```
这将输出`HelloWorld`,而不是一个由字符编码组成的数组。
阅读全文