找到单元阵列的索引

7视图(30天)
Mohamuud哈桑
Mohamuud哈桑 2015年4月11日
评论道: Stephen23 2015年5月27日
你好所有的,假设我有第六单元阵列x1包含抽象的文章,所以每一行的单元格包含800个字符。如果我找到的位置str = " b e h i n d '从这个单元阵列,只有b将生成,那么我的代码是错误的。细胞在附件或myabs.mat数组数据
负载(“myabs.mat”);
mydata = X;
(行、列)= (mydata)大小;
距离= 0(行、列);
str =“后面使用覆盖”;
j = 1;
n = 1:行
gec = char (mydata {n});
% j = 1:长度(str)
m = 1:800
j <长度(str)
% j = 1:长度(str)
如果(通用电气(m) = = str (j))
indexx (j) = m;
距离(n, m) = indexx (j);
结束
打破;
j = + 1;
结束
结束
结束
4评论

登录置评。

接受的答案

Stephen23
Stephen23 2015年4月11日
编辑:Stephen23 2015年4月11日
可能有更简单的方法来实现这一任务,但这似乎工作:
str =“后面”;
负载myabs
m = 1:元素个数(X)
Y = bsxfun (@eq, X {m} (:), str);
n = 2:尺寸(Y, 2)
(:,n) = Y (:, n) & cumsum (Y (:, n - 1)) > 0;
结束
Z =找到(任何(diff([假(大小(str)); cumsum (Y) > 0], 1), 2))
结束
当它打印运行这个命令窗口:
Z =
135年
149年
235年
236年
239年
266年
Z =
72年
73年
127年
136年
160年
174年
Z =
163年
170年
172年
173年
177年
221年
Z =
40
53
65年
66年
76年
112年
Z =
216年
217年
267年
279年
295年
319年
Z =
170年
175年
178年
196年
197年
234年
3评论
Mohamuud哈桑
Mohamuud哈桑 2015年4月12日
谢谢斯蒂芬•Cobeldick这一步,是最好的方法,我可以实现我的目标。一次又一次地感谢您继续的支持金宝app

登录置评。

答案(1)

Stephen23
Stephen23 2015年4月11日
编辑:Stephen23 2015年4月11日
这个任务可以执行更迅速、更强劲通过使用内置函数。为什么不直接使用 strfind 而不是这些响应迟缓嵌套循环:
> > = {“一些单词。”,“更多的文本搜索”,“一些词与其他词”,“不同的信息”};
> > B = strfind (,“词”);
> > B {:}
ans =
14
ans =
[]
ans =
6日23
ans =
[]
返回一个单元阵列的指标给每个字符串中搜索文本的位置吗 “词” 被发现。它正确地找到第一个字符串的一个实例,和两个实例在第三个字符串。
你应该避免调用变量 j ,因为这些都是内置的名字 虚数单位
3评论
Mohamuud哈桑
Mohamuud哈桑 2015年4月11日
只是我想要的是什么。找到str的字符indexces顺序的一个接一个的单元阵列拥有6行文章抽象和每行包含800个字符。例如str的第一个字符是“b”,所以我们把它135年该指数根据第一提取我的意思是我的第一行单元阵列,在那之后我们会发现下一个字符的str“e”,估计是发现149年指数的第一行但结果是零....所以从我的代码是错误的。这是我的问题吗?请帮助我。

登录置评。

类别

找到更多的在细胞数组帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!