查看: 136|回复: 4|关注: 0

[已答复] 求解GUI中如何通过可编辑文本输出一个矩阵

[复制链接]

新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
发表于 2019-6-11 19:54:18 | 显示全部楼层 |阅读模式
请问我想利用一个按钮和一个可编辑文本输出一个m×1的矩阵
我的想法是在可编辑文本中输入一个数,通过按钮输入到a[]里面去,有持续输入的效果,最后输入0结束
思路是这样,可是不知道该如何实现。
或者有什么更好的方法从GUI中输出一个矩阵。
求指点。


新手

10 麦片

财富积分


050


0

主题

13

帖子

0

最佳答案
  • 关注者: 1
发表于 7 天前 | 显示全部楼层
不明白你说的意思,能说的详细点吗?

新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层
下午2点十分 发表于 2019-6-12 10:05
不明白你说的意思,能说的详细点吗?

你好,刚接触matlab比较生疏,我想用GUI输入一个m×1的矩阵,如下所示
输入.png
我在可编辑文本中输入一个数字,第一次按下按钮,让他成为a(1,1)
接下来我再在可编辑文本中输入一个数字,按下按钮,让他成为a(1,2)
一直这样输入直到按下-1结束。
%我的接收程序已做好如下
%%

a=[];                                                               %初始数据为空
in=input('依次输入端点的x坐标,输入-1时结束:');   %输入一个数据
while (isempty(in)||in~=-1)                                %空数据或者数据不为0进入循环,数据为-1跳出循环
    a=[a in];                                                      %在原来的数据末端加入新的数据
    in=input('依次输入端点的x坐标,输入-1时结束:');%要求再输入数据
end
a=a'

%不知道这样做是否妥当


新手

10 麦片

财富积分


050


0

主题

13

帖子

0

最佳答案
  • 关注者: 1
发表于 7 天前 | 显示全部楼层
我还是不是太懂你的意思,不过我按照大概写了一个函数,你试试看看是不是你想要的,现在输入框中输入数字,然后按下写入按钮,在下方的表格中就会看到写入的数据,点清空可以清除输入框的数字
function Input
global GUI
a = [];
GUI.fig = figure('units','pixels','NumberTitle','off','position',[500 180 300 350],...
                 'menubar','none','Resize','off','name','Input Number');
GUI.inputedit = uicontrol('Parent',GUI.fig,'Style','edit',...
    'String','','HorizontalAlignment','left','Position',[20 270 260 50]);
GUI.inputbutton = uicontrol('Parent',GUI.fig,'Style','pushbutton','String','写入','Position',[160 230 50 30],...
                      'callback',@InputFcn);
GUI.deletebutton = uicontrol('Parent',GUI.fig,'Style','pushbutton','String','清空','Position',[230 230 50 30],...
                      'callback',@DeleteFcn);

GUI.datatable = uitable(GUI.fig,'Data','','Position',[20 20 260 200]);

    function InputFcn(~,~)
     num = get(GUI.inputedit,'string');
     a(end+1,1) = str2double(num);
     set(GUI.datatable,'Data',a);
    end
    function DeleteFcn(~,~)
     set(GUI.inputedit,'string','');   
    end
end

运行结果:

1.png

新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层
下午2点十分 发表于 2019-6-12 14:41
我还是不是太懂你的意思,不过我按照大概写了一个函数,你试试看看是不是你想要的,现在输入框中输入数字, ...

谢谢你,给我提供了宝贵的思路
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

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