也许是一个非常简单的问题,但我已经在互联网上找了几个小时的答案,但我找不到它。
我创建了以下功能。在另一个m文件中,我想使用矩阵'actual_location'。但是,不可能使用矩阵的单个单元(即actual_location(3,45)或actual_location(1,2))。当我尝试使用单个单元格时,出现以下错误:??? Error using ==> Actual_Location
Too many input arguments.
任何人都可以告诉我我要改变什么,这样我才能阅读矩阵的单个细胞?
function [actual_location] = Actual_Location(~);
actual_location=zeros(11,161);
for b=1:11
for t=1:161
actual_location(b,t) = (59/50)*(t-2-(b-1)*12)+1;
if actual_location(b,t) < 1
actual_location(b,t) =1;
end
end
actual_location(1,1)
end
答案 0 :(得分:1)
正如您所定义的那样,函数Actual_Location写入的矩阵的m文件中的名称是actual_location。但是,当您调用函数时,您可以为输出提供您喜欢的任何名称。我认为你这样称呼它,记住Matlab有点区分大小写:
actual_location = Actual_Location(arguments);
你只是在写自己迷惑。在函数定义中使用除actual_location之外的名称作为伪参数,并调用该函数以返回具有更多不同名称的变量,如下所示:
output = Actual_Location(arguments);
看起来你可能期望actual_location(1,1)返回一个数组的元素1,1,而它可能是一个带有2个输入参数的函数调用。
答案 1 :(得分:1)
这似乎暗示你用多个参数调用Actual_Location函数......我正在用适当的缩进重写你的代码。
function [actual_location] = Actual_Location()
actual_location=zeros(11,161);
for b=1:11
for t=1:161
actual_location(b,t) = (59/50)*(t-2-(b-1)*12)+1;
if actual_location(b,t) < 1
actual_location(b,t) = 1;
end
end
actual_location(1,1)
end