【问题标题】:What is wrong with this mat lab code?这个matlab代码有什么问题?
【发布时间】:2016-08-25 04:54:39
【问题描述】:

这就是问题所在: 编写一个名为 top_right 的函数,它接受两个输入:一个矩阵 N 和一个标量非负整数 n,按此顺序排列,其中 N 的每个维度都大于或等于 n。函数返回 N 右上角的 n×n 方阵。

我的代码:

function s=top_right(A,n)
  s=A(1:n,end-n+1:end);

我不知道我错在哪里, 谢谢!

【问题讨论】:

  • 您的预期和实际输出是多少?
  • 这究竟是关于什么的? C++opencvmatlab?删除不相关的标签!
  • 函数返回一个 nxn 矩阵。这不是你想要的吗?
  • 好的,这里看起来不错,这将返回一个 n×n 矩阵。您能否提供一个示例和说明为什么这不能按您的预期工作。

标签: algorithm matlab


【解决方案1】:

从您的帖子和相应的评论中可以公平地假设您是 MATLAB 和 stackoverflow 的新手。先回答你的问题:

您的代码工作正常并且可以执行应有的操作,但我认为它是您工作的脚本的某个地方。将其用作函数打开一个新的脚本副本

function s=top_right(A,n)
  s=A(1:n,end-n+1:end);
end

在那里并保存为“top_right.m”(保存时会建议名称)。当您在该文件夹中工作时,您可以使用 top_right(A,n) 调用您的函数

其次是如何在这里提问,以便您可以快速得到正确答案。检查https://stackoverflow.com/help/mcve 并使您的问题看起来像描述的那样,例如:

嘿,你们这些美丽的人!我试图让top_right 函数工作,它应该返回矩阵的右上角。我的代码是:

A=[(1:10)'*(1:10)];
function s=top_right(A,n)
  s=A(1:n,end-n+1:end);
end;

但给我留下了错误

Error: File: test.m Line: 1 Column: 1
Function definitions are not permitted in this context.

欢迎使用 stackoverflow!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2014-08-29
    • 2013-06-05
    • 2014-06-04
    • 2011-07-07
    相关资源
    最近更新 更多