这里关注下strcat 和[] 连接的一点小区别,strcat 不考虑分隔符(譬如空格、换行等),而【】则考虑分隔符,并将其当做字符串的一部分。
另外说下,disp函数与fprintf也有类似的不同,disp也不考虑分隔符。
下面是一个按要求显示当前日期时间的简单小程序:
clc;
clear all;
disp('What style do you want to show? Please choose the check num. ');
disp('styles:\n');
disp(' 1) XXXX-XX-XX XX:XX''XX"');
disp(' 2) XXXX年XX月XX日 XX点XX分XX秒');
disp(' 3) month XX,XXXX XX:XX''XX"');
disp('Type any other number to show in default way. ');
styleNum = input('Please input a number: ');
nowTime = fix(clock);
switch styleNum
case 1
nowStr = strcat(num2str(nowTime(1)), '-', num2str(nowTime(2)), ...
'-', num2str(nowTime(3)), [' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
disp(nowStr);
case 2
nowStr = strcat(num2str(nowTime(1)), '年', num2str(nowTime(2)), ...
'月', num2str(nowTime(3)), '日' , [' ', num2str(nowTime(4))], ...
'点', num2str(nowTime(5)), '分', num2str(nowTime(6)),...
'秒');
disp(nowStr);
case 3
nowStr = z_changeMonth(nowTime);
disp(nowStr);
otherwise
disp(nowTime);
end
英文月份转换的函数:
function [nowStr ] = z_changeMonth(nowTime)
%
%
monthStr = {'January', 'February', 'March', 'April', 'May', 'June',...
'July', 'August', 'Swptember', 'October', 'November', 'December'};
switch nowTime(2)
case 1
nowStr = strcat(monthStr{1}, [' ', num2str(nowTime(3)), ...
'st, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 2
nowStr = strcat(monthStr{2}, [' ', num2str(nowTime(3)), ...
'nd, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 3
nowStr = strcat(monthStr{3}, [' ', num2str(nowTime(3)), ...
'rd, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 4
nowStr = strcat(monthStr{4}, [' ', num2str(nowTime(3)), ...
'th, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 5
nowStr = strcat(monthStr{5}, [' ', num2str(nowTime(3)), ...
'th, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 6
nowStr = strcat(monthStr{6},[ ' ', num2str(nowTime(3)), ...
'th, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 7
nowStr = strcat(monthStr{7}, [' ', num2str(nowTime(3)), ...
'th, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 8
nowStr = strcat(monthStr{8}, [' ', num2str(nowTime(3)), ...
'th, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 9
nowStr = strcat(monthStr{9}, [' ', num2str(nowTime(3)), ...
'th, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 10
nowStr = strcat(monthStr{10}, [' ', num2str(nowTime(3)), ...
'th, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
case 11
nowStr = strcat(monthStr{11}, [' ', num2str(nowTime(3)), ...
'th, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
otherwise
nowStr = strcat(monthStr{12}, [' ', num2str(nowTime(3)), ...
'th, ', num2str(nowTime(1)), ' ', num2str(nowTime(4))], ...
':', num2str(nowTime(5)), '''', num2str(nowTime(6)),...
'"');
end
很简单吧,呵呵