从另一个单元阵列提取匹配的行
2视图(30天)
显示旧的评论
我有附加2 mat文件命名
all_files.mat
和
full_details.mat
在每一行
all_files.mat
行如下图片所示吗
![](http://www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/1350019/image.png)
我想分开成三部分所示黄色、绿色和蓝色
我写了下面的代码将它分成3部分
str1
,
str2
和
str3
负载all_files
为i = 1
temp = all_files {};
kdash = strfind(临时“_”);
kdot = strfind(临时“。”);
str1 = temp (1: kdash (1) 1);
str2 = temp (kdash (1) + 1: kdash (2) 1);
str3 = temp (kdash (2) + 1: kdot (1) 1);
结束
负载full_details
现在我想要的
行
满足以下条件的全部细节,
str1匹配字符串column1_of_full_details & &
str2匹配column2_of_full_details & &
str3匹配column3_of_full_details & &
column7_of_full_details = =“英语”
如果不存在去all_details下一行
将会有许多行满足这个条件。所以我想要行最长的描述,该字符串
column8_of_full_details
并保存行从full_details all_files和描述
例如,如果
temp =“mv89psg6zh4_33_46.avi”;
满足四个条件后,我的结果将是(
请注意:以下输出行。理解我只显示3行
)
![](http://www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/1350024/image.png)
然后我想要最长的字符串从最后一列并将其保存all_files一起在一个新的变量
![](http://www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/1350029/image.png)
请某人可以帮助做条件检查超过1条件和寻找最长的字符串从一列
接受的答案
dpb
2023年4月9日
航空公司代码;的
负载
操作没有在线工作……
> >加载all_files
> > =分裂(extractBefore (all_files,“。”),“_”);
错误使用分割(第99行)
元素14的文本包含3分隔符,而之前的元素2。所有元素必须包含相同数量的分隔符。
> > all_files (12:15)
ans =
4×1细胞数组
{“-Ms9tsWmhyU_80_95.avi”}
{“-YI0cxuNcq8_262_272.avi”}
{“-_aaMGK6GGw_57_61.avi”}
{“-_hbPLsZvvo_172_179.avi”}
> >
在本地机器上。
你有all_files中的数据文件中定义的不一致——whassup w / ?实际上是最主要强调其他数据文件来匹配或做文件名必须先清理吗?
> > all_files = strrep (all_files,“_”,“- - -”);
> > =分裂(extractBefore (all_files,“。”),“_”);
错误使用分割(第99行)
元素36的文本包含3分隔符,而前面的元素2。所有元素必须包含相同数量的分隔符。
> > all_files (34:38)
ans =
5×1细胞数组
{“-s4-6QTT7HE_235_241.avi”}
{“-t-ZWaJeH-o_0_15.avi”}
{“-uT_1VDvXok_8_15.avi”}
{“-vKO3uSG6Do_3_14.avi”}
{“-vg3vR86fu0_1_6.avi”}
> >
好,现在你有更突显出埋在文件名。
这并不像你所描述的工作;你的命名约定不一致。