使用function创建MATLAB类时报错:CLASS 函数必须从类构造函数内调用。
一个可能的原因是因为MATLAB里创建的类.m文件需要放入一个文件夹里,文件夹名称需要和类名一致,并且需要在前面添加'@'符号,这样MATLAB就可以识别这个类,并进行调用。
例如创建一个学号类 id_number存放在id_number.m中:
function res = id_number(number)
res.idnum = number;
res = class(res, 'id_number');
end
在命令行窗口直接调用:
student1_id = id_number('001');
则会报错:
此时我们在当前目录下新建子目录'@id_number' (注意一定要是'@'+'类名'),并将id_number.m放入该目录下。
再次在命令行调用:
student1_id = id_number('001');
就不会报错了。