QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 8241|回复: 2
打印 上一主题 下一主题

让Matlab接受回车。

[复制链接]
字体大小: 正常 放大

1

主题

3

听众

26

积分

升级  22.11%

该用户从未签到

自我介绍
用数学管理田间地头。
跳转到指定楼层
1#
发表于 2010-5-28 10:58 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
最近一直在学习Matlab,渐渐地感觉到了它的魅力,也遇到了一些难题,今天我就说一个问题,关于字符串加入回车问题。
做一个GUI,上面有个Edit框,用
set(handles.edit1,'string',{handles.StrCurrent(1:iLineSize*1),handles.StrCurrent(iLineSize*1+1:iLineSize*2)}
生成两行字符串,显示正确,两行字符。
但是在把字符串复制到剪贴板时候,发现两行字符串变成了一行,命令如下:
strdata = get(handles.edit1,'string');
strdata5 = '';
strdata4 = sprintf('\n');
strdata1 = char(strdata(1,1));
strdata2 = char(strdata(2,1));
strdata3 = strcat(strdata1,strdata4,strdata2);
strdata5 = strcat(strdata5,strdata4,strdata3);
strdata5 = strcat(strdata5,strdata4);
clipboard('copy',strdata5);
上面的命令中,我已经加入了回车,可惜不成功。
经过单步跟踪发现,是strcat函数有限制:
    if ~isempty(str) && (str(end) == 0 || isspace(str(end)))
        str = char(deblank(str));
    end
在判断回车时,(str(end) == 0 || isspace(str(end)))这个条件是成立的,因此回车被删除。
除非你在回车左右加上可显示的ASCII字符才行,但是这又违背了我们的初衷:
strdata4 = sprintf('a\na');
最后没有办法,只有把strcat函数上面的判断语句
isspace(str(end)) 注释掉之后成功复制为两行字符串到剪贴板。
为了发布自己的程序时也可以实现回车加入字符串,只有在上面几句程序中用自己的函数my_strcat来替代strcat函数。
strdata = get(handles.edit1,'string');
strdata5 = '';
strdata4 = sprintf('\n');
strdata1 = char(strdata(1,1));
strdata2 = char(strdata(2,1));
strdata3 = my_strcat(strdata1,strdata4,strdata2);
strdata5 = my_strcat(strdata5,strdata4,strdata3);
strdata5 = my_strcat(strdata5,strdata4);
clipboard('copy',strdata5);



zan
已有 1 人评分体力 收起 理由
厚积薄发 + 5

总评分: 体力 + 5   查看全部评分

转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持1 反对反对0 微信微信

6

主题

5

听众

525

积分

升级  75%

  • TA的每日心情
    奋斗
    2016-5-23 20:51
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    邮箱绑定达人 新人进步奖

    群组数学建模

    群组Matlab讨论组

    群组Linux推广

    群组09年国际数学建模群—鹰之队

    群组半**流

    回复

    使用道具 举报

    11

    主题

    6

    听众

    2308

    积分

    升级  10.27%

  • TA的每日心情
    慵懒
    2015-6-9 22:13
  • 签到天数: 155 天

    [LV.7]常住居民III

    社区QQ达人 邮箱绑定达人 发帖功臣

    群组2012第三期美赛培训

    群组学术交流A

    群组学术交流B

    不是不够不勤奋,是勤奋的程度还不够.大一就这样过去了,什么都没学,连勤奋都不够.3534726540483415
    哈哈
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-6-2 19:26 , Processed in 0.517535 second(s), 64 queries .

    回顶部