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

本文介绍了一个使用MATLAB实现的简单程序,可根据用户选择的不同格式显示当前日期和时间。此外,还提供了一个将月份数字转换为英文名称的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里关注下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
很简单吧,呵呵吐舌头

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值