Hi,
I have a matrix "c" has year column and I need to add "31May" in front of each year in the column. So, the resulting array should look like below: (first two rows are shown). Note that years are not always in a sequence.
How can I achieve this in MATLAB.?
Thanks in advance.
31May1966 5261.9
31May1967 6003.5

 Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 23 Dez. 2015

0 Stimmen

out = [arrayfun(@(x)sprintf('31May%d',x),c(:,1),'un',0),num2cell(c(:,2))];

4 Kommentare

Damith
Damith am 23 Dez. 2015
Bearbeitet: Damith am 23 Dez. 2015
Forgot to mention earlier that is there a way storing into a double array or something since I am planning to use "csvwrite" function. I want the 1st column as ddmmmyyyy without any commas or space. (eg. 31May1966)
See my code below:
filePattern = fullfile(myFolder, '*.csv');
d = dir(filePattern);
fmt='%4f %6.1f %*[^\n]';
for i=1:length(d)
fid = fopen(fullfile(myFolder,d(i).name));
c=cell2mat(textscan(fid,fmt,'collectoutput',true,'headerlines',0,'delimiter',','));
fid=fclose(fid);
%out = [arrayfun(@(x)sprintf('31May%d',x),c(:,1),'un',0),num2cell(c(:,2))];
stn=strtok(d(i).name,'_')
csvwrite([stn '.csv'],out)
clear out
end
Walter Roberson
Walter Roberson am 23 Dez. 2015
csvwrite is not suitable anything other than numeric arrays; dlmwrite() is the same. You can use xlswrite() with a .csv file extension, or you can use one of the techniques shown here
Damith
Damith am 24 Dez. 2015
xlswrite function worked here. But, when I open the file, the 1st column has dd-mmm-yyyy. There is a "-". Is there a way to specify the format of the 1st column?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by