爲什麼我會得到一個錯誤:爲什麼傳遞適當的參數時會出現「輸入參數太多」錯誤?
??? Error using ==> ensureCellType Too many input arguments.
Error in ==> usage_dynamicVariableNaming at 11 result = dataHolder.ensureCellType(str);
時,我傳遞的參數正確的號碼?
% USAGE:
clear all;
clc;
elementNames = {'area_12345[<>]6789', 'apollo123', 'guruX', 'ok'};
elementTypes = {'string', 'specialChar', 'int', 'float'};
elementValues = {'charlie', 'vvv', '09', '123.321'};
dataHolder = dynamicVariableNaming;
str = 'test';
result = dataHolder.ensureCellType(str);
%% CLASS
classdef dynamicVariableNaming
%HELLO Summary of this class goes here
% -
properties
variableNames = [];
variableValues = [];
variableTypes = [];
end
methods (Access = public) % (Access = private)
function obj = dynamicVariableNaming (variableName, variableValue, variableType)
% class constructor
if(nargin > 0)
obj.variableNames = variableName;
obj.variableValues = variableValue;
obj.variableTypes = variableType;
end
end
% end
%
% methods (Static = true)
function addVariables (obj, variableName, variableValue, variableType)
obj.variableNames = [obj.variableNames ensureCellType(variableName)];
obj.variableValues = [obj.variableValues ensureCellType(variableValue)];
obj.variableTypes = [obj.variableTypes ensureCellType(variableType)];
end
function cellData = ensureCellType(value)
if (class(value) ~= 'cell')
cellData = cell2string(value);
else
cellData = value;
end
end
end
end
感謝您的幫助很大。 它現在運行,但未插入數據。
我開始了一個新的線程在這個新的問題: The data is not inserted successfully into object
addVariables()仍然給出錯誤。 ================================================ ====== ???錯誤使用==> addVariables 輸入參數太多。 錯誤==> usage_dynamicVariableNaming at 14 dataHolder.addVariables(dataHolder,elementNames(i),elementTypes(i),elementValues(i)); –
您需要將方法簽名定義爲'output = methodName(obj,otherInputs)',但您需要將您的方法調用爲'output = obj.methodName(otherInputs)'。 'obj'作爲第一個輸入參數在_implicitly_中傳遞 - 如果直接傳遞它,將會有一個額外的輸入參數給出您看到的錯誤。 –