为什么会发生此错误:索引超出矩阵维度

时间:2014-04-02 20:02:33

标签: matlab user-interface

我在MATLAB中运行GUI系统,我是一名使用GUI的初学者。

代码很长,所以我只想把我所拥有的东西放在哪里,看看它是否足以提供帮助,谢谢。

在我的第一个GUi中,我在开场功能中有这个:

HW12_result_bhanford(handles.scan_age, handles.check_athlete, handles.radio_male, handles.radio_female)

这应该是将这四个变量传递给我的第三个名为GUI的GUI   HW12_result_bhanford

在我的第二个GUI中,我在开场函数中写了这个:

age = varargin{1}
athlete = varargin{2}
male = varargin{3}
female = varargin{4}

然后我在第二个GUI和I中使用这四个变量(年龄,运动员,男性,女性)   假设它们是从第一个传递的相应变量的等效值   GUI。   当我运行所有内容时,返回的错误是索引超出矩阵维度。

如果有人能帮助我,那就太棒了。如果没有我理解的完整代码你就无法帮助。

1 个答案:

答案 0 :(得分:0)

如果您的参数列表是可变的,则使用varargin,并且varargin必须在您的函数定义中。

function HW12_result_bhanford(varargin)

在这种情况下,函数接收一个单元格数组作为输入,因此您可以使用varargin{1}等获取单个参数。

如果将参数作为结构放在一起,则可以将此结构作为参数传递。

function HW12_result_bhanford(handles)

但是,如果函数定义具有单独的参数,例如,

function HW12_result_bhanford(age, athlete, male, female)

你不能使用varargin,只是按原样处理参数。

详细了解如何使用VARARGIN