通过函数调用在matlab中更改矩阵中的值

时间:2013-04-23 19:15:26

标签: matlab function matrix user-defined-functions

我有一个充满零的矩阵。然后我想一次将0改为值1。我必须决定改变哪个元素。我尝试过以下方法:

    classdef project < handle

properties
      scheme
end

methods
    function obj = project(antpro,antmed)
        obj.scheme = zeros(antpro,antmed);         
    end      

    function obj = AddEmployee(pronav,mednav)
        % Function adding a employee to the scheme
        obj.scheme(pronav,mednav) = 1;
    end
 end 

我希望我有点清楚我想做什么。当我运行此代码时,我收到消息: “未定义的函数'AddEmployee'用于'double'类型的输入参数。”

我真的不明白这一点,因为我的所有文件都位于同一个文件夹中,而且它是我的matlab会话的路径。

提前谢谢你 /拉塞

2 个答案:

答案 0 :(得分:1)

matlab中的方法声明需要传递obj作为第一个参数。以下是相应matlab文档的链接: http://www.mathworks.nl/help/matlab/matlab_oop/ordinary-methods.html#brdqipw-1

答案 1 :(得分:0)

这是一个类,你需要创建一个它的实例并调用它的AddEmployee方法(虽然我不知道你是怎么设法创建它而不知道这个)。

>> prj = project(); % Create an instance
>> prj.AddEmployee('a', 'name'); % Call a method in the instance

听起来你可能会发现使用this information。另请参阅Object Oriented Programming文档。