意外的MATLAB表达? (试图创建一个功能)

Unexpected MATLAB expression? (trying to create a function)

load('matrix.mat');
userInput = input('input a value from 1-5')
DayReport = sum(matrix(:,end 2);==userInput)

我正在尝试检索与 userInput 对应的加载矩阵的第 2 列中的行数。但是,当我尝试 运行 代码时,它说第三行有错误(简单地说,"Unexpected MATLAB expression")。关于这是为什么的任何想法?


编辑:我找到了一个解决方案,事实证明我不需要 "end" 或求和函数中的分号。

load('matrix.mat');
userInput = input('input a value from 1-5')
DayReport = sum(matrix(:,2)==userInput)

去掉最后一行代码中的分号和end语句。我的猜测是您想访问 matrix 的第二列,而它只是 matrix(:,2)

此外,我怀疑您从某处复制并粘贴了代码。这通常是糟糕的编程习惯,因为您从中复制代码的位置可能在那种情况下有效,但如果您尝试将其带入当前上下文,它可能与您实际做的略有不同,并可能导致错误。

在 Programmers Stack Exchange 上看到这个关于为什么你应该一起避免这一切的很好的讨论:https://softwareengineering.stackexchange.com/questions/87696/is-copy-paste-programming-bad