MATLAB 板


LINE

※ 引述《dragonace ()》之铭言: : 书上看到的一个例子: : function mouse01(action) 这里表示这个函数的名字是mouse01 使用函数必须同时给定一个"action"(字串)输入 : % mouse01: 本例展示如何设定滑鼠事件的反应指令 : if nargin==0, action='start'; end 这行程式的意思是 当你程式呼叫 mouse01 且没有给定任何输入字串时 [[[程式码为 mouse01 ]]] 函数必须输入的action字串令他等於"start" 因为action='start' 所以在下面的switch里 函数会先执行case 'start' 里的程式内容 : switch(action) : case 'start' % 开启图形视窗 : axis([0 1 0 1]); % 设定图轴范围 : box on; % 将图轴加上图框 : title('Click and drag your mouse in this window!'); : % 设定滑鼠按钮被按下时的反应指令为「mouse01 down」 : set(gcf, 'WindowButtonDownFcn', 'mouse01 down'); ^^^^^^^^^^^^^^^^^ 这行的意思如同%里说明的 : 如果在目前视窗有滑鼠按键被按下时执行mouse01 down这个程式 mouse01是函数名 down是mouse01这个函数执行时必须给定的输入字串 发现没 mouse01不就是目前自己这个函数吗 所以他是自己呼叫自己 因为要执行mouse01 输入字串是down 也就是说 action='down' 所以要执行switch的case 'down' 也就是正下方的那些内容 : case 'down' % 滑鼠按钮被按下时的反应指令 : % 设定滑鼠移动时的反应指令为「mouse01 move」 : set(gcf, 'WindowButtonMotionFcn', 'mouse01 move'); : % 设定滑鼠按钮被释放时的反应指令为「mouse01 up」 : set(gcf, 'WindowButtonUpFcn', 'mouse01 up'); : % 列印「Mouse down!」讯息 : fprintf('Mouse down!\n'); : case 'move' % 滑鼠移动时的反应指令 : currPt = get(gca, 'CurrentPoint'); : x = currPt(1,1); : y = currPt(1,2); : line(x, y, 'marker', '.', 'EraseMode', 'xor'); : % 列印「Mouse is moving!」讯息及滑鼠现在位置 : fprintf('Mouse is moving! Current location = (%g, %g)\n', ... : currPt(1,1), currPt(1,2)); : case 'up' % 滑鼠按钮被释放时的反应指令 : % 清除滑鼠移动时的反应指令 : set(gcf, 'WindowButtonMotionFcn', ''); : % 清除滑鼠按钮被释放时的反应指令 : set(gcf, 'WindowButtonUpFcn', ''); : % 列印「Mouse up!」讯息 : fprintf('Mouse up!\n'); : end : 第一个问题是set(gcf, 'WindowButtonDownFcn', 'mouse01 down'); : 滑鼠被按下的指令不是存在'mouse01 down'这个字串吗? 同上解说 滑鼠按下後要执行的函数不是存在'mouse01 down'这个字串 'mouse01 down'这个不是字串的意思 ' '范围里的是要执行的function 'move''down''down'这些都是对mouse01来说所要输入的字串参数 : 可是接下来的case的事件都是'move''down''down'这些 : 所以set後面的第三个参数中 前面必须是这个function名称 後面才是存的指令吗?? 顺便说明 set(gcf, 'WindowButtonMotionFcn', ''); ^^^^^^ 这里什麽都没有 也就是说什麽函数都不要执行 等於是说不要有任何动作 就是%里清除动作的意思了~ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.168.183.43
1F:推 dragonace:酷!感谢!! 07/21 23:04







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP