string match and replace string with matching number from another matrix

2 ビュー (過去 30 日間)
Phillip
Phillip 2023 年 11 月 27 日
コメント済み: Phillip 2023 年 11 月 27 日
Hi All,
I'm stuck. I have a file called StimNo.mat that contains the filenames of over 2000 soundfiles (e.g. 'air.wav', 'air_2.wav', 'chair.wav' etc) in the first column. The second column has the associated number (e.g. 1, 2, 3 etc).
I have another file like it with a small subset of the .wav names. I'd like to replace the names of the .wav file with the number from Column 2 in StimNo.mat. How might I do that please? The .wav files are not consistently labeled so need to match the full string.
Kind regards
Phil

採用された回答

Paul
Paul 2023 年 11 月 27 日
編集済み: Paul 2023 年 11 月 27 日
From the desription, it sounds like the StimNo file contains a cell array (assuming all file names are unique)
stimno = {'air.wav' 1;'air2.wav' 2;'chair.wav' 3;'chair2.wav' 4}
stimno = 4×2 cell array
{'air.wav' } {[1]} {'air2.wav' } {[2]} {'chair.wav' } {[3]} {'chair2.wav'} {[4]}
and the second file is something like
secondfile ={'chair2.wav'; 'air2.wav'}
secondfile = 2×1 cell array
{'chair2.wav'} {'air2.wav' }
And the result would be
[~,locb] = ismember(secondfile,stimno(:,1));
locb
locb = 2×1
4 2
result = stimno(locb,2)
result = 2×1 cell array
{[4]} {[2]}
  1 件のコメント
Phillip
Phillip 2023 年 11 月 27 日
OH...ismember!! (I was messing around with strcmp etc.) Thank you very much!!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeString についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by