how to concatenate two fields in a struct ?

6 Ansichten (letzte 30 Tage)
sandy
sandy am 6 Sep. 2013
hi...i want to concatenate fields namels data and text data below,how to do this? textdata is the label name for the maindata...any suggestion ?
struct(1*1)
maindata(138*173 double)
textdata(138*1 cell)

Akzeptierte Antwort

Geert
Geert am 6 Sep. 2013
Sandy,
it is still very unclear what you exactly want. In what format do you want your output data?
Do you want something like the following example?
cc = struct;
cc.maindata = [0 +1.193790E+1 +5.275883E+0 +1.796951E+1;
0 +1.188781E+1 +6.487981E+0 +1.919098E+1
0 +1.175415E+1 +5.493386E+0 +1.851824E+1];
cc.textdata = {'SAMPLE_20130606_1358'; 'SAMPLE_20130606_1408'; 'SAMPLE_20130606_1418'}
concatenateddata = cell(size(cc.maindata,1),size(cc.maindata,2) + size(cc.textdata,2));
for ii = 1:size(cc.maindata,1)
concatenateddata{ii,1} = cc.textdata{ii};
for jj=1:size(cc.maindata,2)
concatenateddata{ii,jj+1} = cc.maindata(ii,jj);
end
end
  1 Kommentar
sandy
sandy am 6 Sep. 2013
Bearbeitet: sandy am 6 Sep. 2013
YES...IT WORKS..thanks a lot Geert.THIS IS WHAT I WANT...can you see this question too < http://www.mathworks.in/matlabcentral/answers/86404-how-to-read-sts-file-in-matlab>

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Geert
Geert am 6 Sep. 2013
Can you be more specific?
Do you want to convert the (double) data in maindata to a string, and concatenate it to the strings in the cell array textdata? In that case, here is an example code snippet on how to do it:
cc = struct;
cc.maindata = [1 2;3 4; 5 6];
cc.textdata = {'firststring'; 'secondstring'; 'thirdstring'}
concatenateddata = cell(3,1);
for ii = 1:size(cc.maindata,1)
concatenateddata{ii} = [num2str(cc.maindata(ii,:)),' ', cc.textdata{ii}];
end
Please make your question more understandable.
  2 Kommentare
sandy
sandy am 6 Sep. 2013
Bearbeitet: sandy am 6 Sep. 2013
HI...your code concatenating both to singel cell as output,but i need output in each cell(like horzcat()) ... inside textdata(138*1) present in each cell
SAMPLE_20130606_1358
SAMPLE_20130606_1408
SAMPLE_20130606_1418
.....
inisde maindata(138*173) in each cell
0 +1.193790E+1 +5.275883E+0 +1.796951E+1
0 +1.188781E+1 +6.487981E+0 +1.919098E+1
0 +1.175415E+1 +5.493386E+0 +1.851824E+1
i need to concatenate both,,where string and numeric in each cell of the output variable,it like below
SAMPLE_20130606_1358 0 +1.193790E+1 +5.275883E+0 +1.796951E+1
SAMPLE_20130606_1408 0 +1.188781E+1 +6.487981E+0 +1.919098E+1
SAMPLE_20130606_1418 0 +1.175415E+1 +5.493386E+0 +1.851824E+1
SAMPLE_20130606_1428 0 +1.282015E+1 +5.903331E+0 +1.901381E+1
SAMPLE_20130606_1438 0 +1.160890E+1 +5.647130E+0 +2.120915E+1
SAMPLE_20130606_1448 0 +1.158797E+1 +5.673629E+0 +1.841896E+1
sandy
sandy am 10 Sep. 2013
there.i used importdata() to read my file and output as struct containing names and values as separate.so i used concatenate to join both to save in excel..

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by