找回密码
 注册
Simdroid-非首页
查看: 144|回复: 10

GUI的问题

[复制链接]
发表于 2010-11-13 10:39:07 | 显示全部楼层 |阅读模式 来自 河北秦皇岛
hf=figure('Color',[0,1,1],'Position',[100,200,400,200],...

'Name','
数制转换','NumberTitle','off','MenuBar','none');
这是我看到别人编写的一段程序
请问高手其中Position后面的数据时怎么确定的?
发表于 2010-11-13 11:28:54 | 显示全部楼层 来自 四川成都
Simdroid开发平台
'position'位置向量[left bottom width height]。其中,[left height]表示相对于图形对象左下角的uicontrol的左下角位置。[widht height]表示uicontrol的尺寸大小,其单位由属性Units确定
Units包括
inches:
centimeters:
normalized:
points:
{pixels}:        位置属性值的单位依次为
英寸
厘米
归一化的坐标值,图形的左下角映射为[0  0]而右上角的映射为为[1  1]
打印设置点,等于1/72 英寸
屏幕的象素。计算机屏幕分辨率的最小单位。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-11-13 14:15:47 | 显示全部楼层 来自 黑龙江哈尔滨
哈哈,最简单也是最直接的办法,多figure几次就明白了!
回复 不支持

使用道具 举报

 楼主| 发表于 2010-11-13 15:09:11 | 显示全部楼层 来自 河北秦皇岛
chenzhian 谢谢你的回答,麻烦你帮我看看下面的程序是什么意思
    chpop={'spring','summer','autumn','winter'};
       chlist={'grid on','grid off','box on','box off'};
       colormap(eval(chpop{n1}));
       eval(chlist{n2});
回复 不支持

使用道具 举报

发表于 2010-11-13 16:50:52 | 显示全部楼层 来自 四川成都
chpop={'spring','summer','autumn','winter'};%chpop元胞
       chlist={'grid on','grid off','box on','box off'};
       colormap(eval(chpop{n1}));     %得到相应的chpop的第n1个字符串,执行如colormap(spring)命令
       eval(chlist{n2});    %将 chlist  的第n2元素的字符串传到命令窗口去执行对应的命令
回复 不支持

使用道具 举报

 楼主| 发表于 2010-11-14 21:39:45 | 显示全部楼层 来自 河北秦皇岛
chenzhian
帮我看个程序
设计一个简单信号分析仪的程序,要求根据输入的两个频率和时间间隔,计算函数 的值,并对函数进行快速傅立叶变换,最后分别绘制时域和频域的曲线。
我设计的程序如下:
设置第一个坐标轴的标识为:frequency_axes, 用于显示频域图形; 第二个坐标轴的标识为:time_axes, 用于显示时域图形。三个文本编辑框的标识为f1_input, f2_input, t_input,分别用于输入两个频率和自变量时间的间隔。
分别设置三个文本编辑框的初始值为:
f1_input=20
f2_input=50
t_input=0:0.001:0.5
pushbutton1_Callback()中,代码包括以下部分
f1=get(handles.f1_input,'String');
f2=get(handles.f2_input,'String');
t=str2double(get(handles.t_input,'String'));
x=sin(2*pi*f1*t)+sin(2*pi*f2*t);
y=fft(x,512);
m=y.*conj(y)/512;
f=1000*(0:256)/512;
axes(handles.frequency_axe)
plot(f,m(1:257))
set(handles.frequency_axe,'XminorTick','on')
grid on
axes(handles.time_axes)  %选择适当的坐标轴
plot(t,x)
set(handles.time_axes,'XminorTick','on')
grid on
但是我得到的结果点击绘图时不显示图形好像只有grid on 有效
还有就是在matlab中输入f1或f2或t时会有结果的输出吗
我认为应该是有的,但是在matlab中输入f1时显示说是f1没有定义

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2010-11-14 23:02:05 | 显示全部楼层 来自 四川成都
楼上的你的程序思路是对的,就这里有点问题:f1=get(handles.f1_input,'String');
f2=get(handles.f2_input,'String');
得到的是两个字符串,你用来做数值计算,肯定会提示你这两个变量没定义的。
f1_1=get(handles.f1_input,'String');
f2_1=get(handles.f2_input,'String');
转化成数值型的。
f1=str2double(f1_1);
f2=str2double(f2_1);
欧了!
回复 不支持

使用道具 举报

发表于 2010-11-14 23:24:57 | 显示全部楼层 来自 黑龙江哈尔滨
f1=get(handles.f1_input,'String');
f2=get(handles.f2_input,'String');
改为:
f1=str2double(get(handles.f1_input,'String'));
f2=str2double(get(handles.f2_input,'String'));
我很诧异你的变量t使用了str2double,为什么f1,f2,没有这么处理呢?嘿嘿...
6# Walker0728

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-11-15 08:44:44 | 显示全部楼层 来自 河北秦皇岛
chenzhian  zhouyang664 谢谢你们的回答
我用过你们说的方法
f1=str2double(get(handles.f1_input,'String'));
f2=str2double(get(handles.f2_input,'String'));
但是仍然不能得到正确的结果,点击绘图的结果仍然是没有图形的显示
在matlab中输入f1,f2是仍然说是没有定义
回复 不支持

使用道具 举报

发表于 2010-11-15 10:58:04 | 显示全部楼层 来自 四川成都
不可能啊,这么简单的界面。
这样你方便的话把整个程序贴上来,我们帮你看下。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-11-15 11:06:55 | 显示全部楼层 来自 河北秦皇岛
我对控件的步置没有编程,是直接修改属性得到的
然后回调函数就是上面写的
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 17:23 , Processed in 0.038165 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表