Hi,
I have a string as shown below:
FilesID='data_190830_102602.mem,data_191030_141002.mem,data_191230_101612.mem'
I want to extract the characters between the commas - each of them is unique, as they are based on timestamps.
I have tried to built a for-loop as seen below, however, it seems not to terminate and a fault occurs;
"Index exceeds the number of array elements"
with respect to this line:
word{j} = FilesID(qnew:qnew+21)
Here is the entire code:
j = 1;
for a=1:length(FilesID)
for q = (j-1):22:length(FilesID)
qnew=q+a;
word{j} = FilesID(qnew:qnew+21)
a=a+1;
j = j+1;
end
end
Thanks

 採用された回答

Cris LaPierre
Cris LaPierre 2021 年 1 月 13 日

0 投票

Why a for loop? I would use strsplit
FilesID='data_190830_102602.mem,data_191030_141002.mem,data_191230_101612.mem';
prts = strsplit(FilesID,',')
prts = 1x3 cell array
{'data_190830_102602.mem'} {'data_191030_141002.mem'} {'data_191230_101612.mem'}

3 件のコメント

Laura Nielsen
Laura Nielsen 2021 年 1 月 13 日
You are right. However, I am also interest in a solution based on a for-loop in order to understand such function to a greater extent. Is this possible?
Cris LaPierre
Cris LaPierre 2021 年 1 月 13 日
I'm sure it is. I'll let you explore that.
Cris LaPierre
Cris LaPierre 2021 年 1 月 13 日
If it helps, what you are looking for might be called parsing a string, or string tokenization. See if this example is more along the lines of what you needed.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Characters and Strings についてさらに検索

製品

リリース

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by