how to concatenate in matlab?
Show older comments
A=power; load ;density;
b=_mean;_std;_max;_min;
A is a set of string in .txt file 1 and B is a set of string in .txt file 2. I need to concatenate the corresponding strings in both text files and put it in the excel sheet, such that ,i need output as,
power_mean power_std power_max power_min load_mean and so on.
It should be stored in excel in a row(1*12). its nothing like creating header or label to my values. im stuck here... help me
3 Comments
Walter Roberson
on 12 Aug 2013
How do strings "correspond" ? The 5th A corresponds to the 5th B? Or the content of one needs to be searched in the content of the other?
How are you representing the strings? As cell arrays or as arrays of characters?
Please give an example of a line from each of the files.
sandy
on 12 Aug 2013
Andrei Bobrov
on 12 Aug 2013
see my answer
Answers (1)
Andrei Bobrov
on 12 Aug 2013
Edited: Andrei Bobrov
on 12 Aug 2013
A={'power'; 'load' ;'density'};
b={'mean';'std';'max';'min'};
[ii,jj] = ndgrid(1:numel(b),1:numel(A));
out = reshape(strcat(A(jj),{'_'},b(ii)),1,[]);
ADD
nm = {'E:\header_01.txt','E:\header_02.txt'};
c1 = cell(1,2);
for jj = 1:2
f = fopen(nm{jj});
c = textscan(f,'%s');
fclose(f);
a1 = regexp(c{:},'\w*','match');
c1{jj} = cat(1,a1{:});
end
n = cellfun('length',c1);
[ii,jj] = ndgrid(1:n(2),1:n(1));
out = reshape(strcat(c1{1}(jj),{'_'},c1{2}(ii)),1,[]);
4 Comments
Walter Roberson
on 12 Aug 2013
You can ndgrid cell arrays of strings? I never knew that!
Andrei Bobrov
on 12 Aug 2013
Oh! I used Octave! Corrected. Thank you Walter!
sandy
on 12 Aug 2013
Andrei Bobrov
on 12 Aug 2013
I did all the corrections.
Categories
Find more on String Parsing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!