MATLAB如何用appdesigner来建立一个解决多元一次方程的小程序。

准备做一个简单的小程序,大概是设置一个函数,里面有三个未知量,给其中随机两个复赋值,按下button后得到另外一个数值。

img


因为刚开始学习appdesigner不久,编程时老是成功不了,希望大家帮忙指点一二

计算下面的是函数关系式

我可以提供一个思路,具体实现要根据实际情况来写。在设计界面时,可以添加三个Edit Field组件,分别对应三个未知量,然后再添加一个Button按钮。点击按钮后,首先选取两个Edit Field随机赋值,然后根据这两个已知量计算出第三个未知量的值,并将这个值显示在第三个Edit Field中。需要注意的是,在每次点击按钮之前,需要判断前两个Edit Field是否都填上了数据,因为没有填上数据的话无法进行计算。以下是可能实现的部分代码:

在Design View界面添加三个Edit Field和一个Button:

image.png

在Callbacks View界面添加Button Pushed回调函数:

image-2.png

代码实现:

function ButtonPushed(app, event)
    % 判断是否有两个Edit Field都有值
    if isempty(app.EditField1.Value) || isempty(app.EditField2.Value)...
            || isempty(app.EditField3.Value)
        uialert(app.UIFigure,'请先输入前两个未知量',...
            '提示','Icon','warning');
    else
        % 选取两个已知量并赋值,第三个未知量用随机数表示
        idx = randperm(3,2); % 随机选择两个数作为已知量
        value = randi(10,1); % 选一个随机数作为第三个未知量
        variable = ['EditField',num2str(setdiff(1:3,idx(1)), '%d')];
        app.(variable{:}).Value = value; % 将第三个Edit Field赋一个随机数
        % 根据两个已知量计算第三个未知量的值并显示在界面上
        x1 = str2double(app.(['EditField',num2str(idx(1)), 'Value']));
        x2 = str2double(app.(['EditField',num2str(idx(2)), 'Value']));
        x3 = 3*x1 + 2*x2 - 3*value;
        app.(app.EditField3.Value).Value = num2str(x3); 
    end
end

这是一个简单的实现,可以根据需要进行修改和美化。需要注意的是,Edit Field的Value是字符变量,需要转换成数值变量进行计算。