【问题标题】:Matlab beginner: function that iterates a matrixMatlab初学者:迭代矩阵的函数
【发布时间】:2013-06-29 19:39:55
【问题描述】:

我是 Matlab 的初学者。我正在尝试运行此函数,但似乎存在我无法理解的语法错误。源代码如下。

function print_trace(x)
for rowi=1:size(x,1),
    for coli=1:size(x,2),
        disp(x(rowi,coli))
    end
end

遇到的错误如下:

??? Input argument "x" is undefined.

Error in ==> print_trace at 2
for rowi=1:size(x,1),

有什么想法吗?

编辑:这是截图:http://imgur.com/pwPhzhh

编辑2:

尝试查看是否有多个副本在运行:

>> which('print_trace')
C:\Users\stablum\Dropbox\cm\print_trace.m

编辑:问题的解决方案:)

看来我解决了这个问题,我的错误是运行(“播放”按钮)函数的文件,而不是仅仅调用函数(它将自动加载文件)。我还是不明白为什么文件运行时会出现这个错误,但至少我的问题解决了。

【问题讨论】:

  • 这个函数怎么调用?
  • @francescostablum: 好的,你不需要运行函数来将它加载到环境中,当文件在当前文件夹中时,你可以像@一样使用它987654327@(在Matlab命令窗口输入这个并回车,你会在命令窗口看到结果)。
  • 您是否不小心拥有同一个文件的多个副本?从命令窗口运行which('print_trace')。生成的路径是否与您正在编辑的文件的路径相同?
  • @francescostablum:是的,当你call一个函数时,它会在当前文件夹中搜索与该函数同名的文件Matlab 路径,当它找到文件(函数)时,它将使用您的输入运行它(并可能返回输出)。无需加载它。见calling a function
  • @pm89:谢谢!看来我解决了这个问题,我的错误是运行(“播放”按钮)文件而不是仅仅调用函数(它将自动加载文件)。

标签: matlab function for-loop


【解决方案1】:

我想是因为你调用函数的方式。

错误提示你没有给出必填参数x。特别是,您似乎没有使用

调用该函数
print_trace()

print_trace

print_trace(empty_cell{:})

这导致没有值可以分配给x

【讨论】:

  • 是的,但我什至不调用该函数。当我运行要在环境中加载的函数时出现问题。这是截图:imgur.com/pwPhzhh
  • 你只是在函数中运行(没有调用它,也没有发送任何输入),x 中什么都没有!因此,例如,当您问她“size(x)”时,该函数不知道该怎么做。
猜你喜欢
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 2014-04-20
  • 1970-01-01
  • 2011-05-08
  • 1970-01-01
相关资源
最近更新 更多