我有一个函数,该函数属于名为item
的对象。这是属性及其构造函数:
#include <pybind11/functional.h>
现在,让我们说我有42个要传递给对象的文本文件。我为此创建了一个名为TestData
的函数,该函数可以筛选数据并找到用户输入的x轴和y轴。为此,首先调用函数classdef TestData
properties
metaData = []; % stores meta data in Nx2 array
data = []; % stores data in PxQ array
colLabels = []; % labels columns
colUnits = []; % provides units
temp = []; % temporary to bypass setters while structuring data
end
methods
%% Constructor
function this = TestData(varargin) % Will take in a variable number of inputs
if (nargin == 0)
return;
end
if (nargin == 1 && ischar(varargin{1})) % Case of the input being a file (.txt, .s*p, etc..)
this = readDataFromFile(this, varargin{1});
return;
elseif (nargin == 4) % Case of the input being raw data. Note that the order matters.
this.metaData = varargin{1};
this.colLabels = varargin{2};
this.colUnits = varargin{3};
this.data = varargin{4};
return
else
error('Not enough input arguments.');
end
end
,该函数设置上面代码中概述的属性数组。它是一个相当长的函数,我暂时不包括它,但是我会说我确实知道它正在起作用。
问题:我制作了一个名为extractData
的对象,并在CW readDataFromFile
中执行了此操作。这将寻找myTestData
和myTestData=myTestData.extractData('Tip Type','Tip S/N')
。如您在代码中所见,类型和S / N在矩阵的第3列中。如果找到了该字符串,它将使用找到该字符串的行,访问该行的第3列,并将该值放入Tip Type
数组中。在我的情况下,类型为Tip S/N
,S / N为temp
。它将写到temp数组,但是在passive
循环的第二次迭代中,它将在第一行上写其他内容,并且AM66191
和for
将显示在第二行。它将一直执行到最后,在第42行,我将看到类型和S / N,但其他所有行都只是垃圾。我已附加了passive
循环的第二次迭代后temp数组的图像。这是AM66191
函数的代码:
for