How do I join a single string with multiple strings?

1 回表示 (過去 30 日間)
Tom Wright
Tom Wright 2013 年 10 月 17 日
コメント済み: Tom Wright 2013 年 10 月 17 日
Hi, I know I can do this with loops but there must be a nicer way.
basepath='/data/';
filebase='video_';
fileext='.avi';
files=['00a' '00b' '00c'];
I'd like the output to be the vector
['/data/video_00a.avi' '/data/video_00b.avi' '/data/video_00c.avi']
(although I'd also be happy with a vertical matrix.
Thanks Tom
  1 件のコメント
Matt Kindig
Matt Kindig 2013 年 10 月 17 日
編集済み: Matt Kindig 2013 年 10 月 17 日
Are you sure you don't want 'files' to be a cell array? Because the way you've defined files, it will just concatenate 00a, 00b, etc. as one string. Observe:
files=['00a' '00b' '00c']
% files = '00a00b00c'
This is probably less useful to you. Instead, define 'files' as:
files = {'00a', '00b', '00c'}

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

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 10 月 17 日
編集済み: Azzi Abdelmalek 2013 年 10 月 17 日
basepath='/data/';
filebase='video_';
fileext='.avi';
files={'00a', '00b', '00c'}
cellfun(@(x) sprintf([basepath filebase '%s' fileext],x),files,'un',0)
Look at
doc cell

その他の回答 (1 件)

Vivek Selvam
Vivek Selvam 2013 年 10 月 17 日
Here you go, Tom.
basepath = '/data/';
filebase = 'video_';
fileext = '.avi';
files = ['00a'; '00b'; '00c'];
n = size(files,1);
horzcat(repmat(basepath,n,1), repmat(filebase,n,1), files, repmat(fileext,n,1))

カテゴリ

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

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by