Matlab 对具有子类的超类属性进行操作
对所有人来说 我是一个新手程序员(我没有参加过结构化课程),试图学习MATLAB。目前,我正在努力理解MATLAB的面向对象编程工具。我想在下面的步骤中清晰地划分我的项目。我想继承经证实的Matlab 对具有子类的超类属性进行操作,matlab,class,oop,inheritance,Matlab,Class,Oop,Inheritance,对所有人来说 我是一个新手程序员(我没有参加过结构化课程),试图学习MATLAB。目前,我正在努力理解MATLAB的面向对象编程工具。我想在下面的步骤中清晰地划分我的项目。我想继承经证实的数据,并在验证中处理它。我遇到此错误您无法设置验证的只读属性“data”。 我该怎么做呢?这是在MATLAB中组织自己的适当方式吗 classdef formatData.m properties data = [] end methods functi
数据
,并在验证
中处理它。我遇到此错误您无法设置验证的只读属性“data”。
我该怎么做呢?这是在MATLAB中组织自己的适当方式吗
classdef formatData.m
properties
data = []
end
methods
function formatData(data)
% This should initialize the data
end
function columnShift(data)
% Simple changes
end
end
end
classdef validateData.m < formatData
properties
error = logical(false)
end
methods
function validateData(data)
if nargin > 0
obj.data = obj@formatData;
end
end
function checkValues()
% check values on data from formatData
end
end
end
classdef formatData.m
性质
数据=[]
结束
方法
函数格式化数据(数据)
%这将初始化数据
结束
函数列移位(数据)
%简单的改变
结束
结束
结束
classdef validateData.m0
对象数据=obj@formatData;
结束
结束
函数checkValues()
%检查formatData中数据的值
结束
结束
结束
令人悲哀的是,MATLAB经常更改面向对象的代码。我发布的代码是从最新文档中引用的。这似乎与我拥有一年的书完全不同
classdef formatData
properties
data = [];
end
methods
function obj = formatData(DataIn)
%formatData This should initialize the data
obj.data = DataIn;
end
function [DataOut] = columnShift(obj)
%columnShift ? How to shift the column?
DataOut = (obj.data)';
end
end
end
classdef validateData < formatData
%validateData
properties
error = false;
end
methods
function obj = validateData(DataIn)
%validateData
obj@formatData(DataIn);
end
function [] = checkValues(obj)
%checkValues
end
end
end
classdef格式数据
性质
数据=[];
结束
方法
函数obj=格式化数据(数据输入)
%formatData这应该初始化数据
obj.data=数据输入;
结束
函数[DataOut]=列移位(obj)
%换班?如何移动列?
数据输出=(对象数据)';
结束
结束
结束
classdef validateData
除了构造函数之外,任何(非静态)方法的第一个参数都应该是对象实例(通常是obj
或self
),您可能会混淆传递给方法的变量,如数据
和数据
属性。尝试更改参数变量,使其与属性名称不匹配,然后编码和错误消息可能会变得更清晰?最后,您给出了代码,但没有给出生成错误的调用,这会有所帮助。