您的位置:首页 > 编程语言 > MATLAB

MATLAB 小经验积累(3):字符串连接

2014-07-06 12:40 239 查看
这里关注下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
很简单吧,呵呵
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: