【发布时间】:2015-11-15 20:52:48
【问题描述】:
m 文件从另一个 m 文件调用函数 nraizes(a)。
clear functions;
clc;
x = input('Insert value for a? ') ;
% call to nraizes()
w = nraizes(x)
clear functions;
带有 nraizes() 函数的 nraizes.m 文件:
printf("\n\n");
printf("nraizes por André Castro - UAB 901396");
printf("\n");
printf("Usar na próxima prompt: nraizes(valor numérico)");
printf("\n");
function n = nraizes(a)
% limpar a memoria de todas as vars e funções
clear functions;
clc;
% intervalo para x
x = 0:.1:25;
% ambas as funções h(x) e g(x)
h = @(x) cos(x);
g = @(x) exp(a*x)-1;
% traçar linha na origem das abcissas
or = x;
or(:) = 0;
% gráfico
plot(x, [h(x);g(x);or]);
axis([0, 25, -1, 1])
title("h(x),g(x)");
grid on;
printf("Fim do Script");
printf("\n");
% limpar a memoria de todas as vars e funções
clear functions;
endfunction
它总是抛出以下错误:
warning: function 'nraizes' defined within script file '/Users/andrecastro/0_Thawed/1_UAB/1 UCS_INFORMATICA/Computacao Numerica/0 2015-2016_CN/1 Algoritmos_Octave/nraizes.m'
error: invalid use of script /Users/andrecastro/0_Thawed/1_UAB/1 UCS_INFORMATICA/Computacao Numerica/0 2015-2016_CN/1 Algoritmos_Octave/nraizes.m in index expression
error: called from:
error: /Users/andrecastro/0_Thawed/1_UAB/1 UCS_INFORMATICA/Computacao Numerica/0 2015-2016_CN/1 Algoritmos_Octave/script.m at line 19, column 7
我不明白为什么。两个 .m 文件位于同一路径中。
【问题讨论】:
-
您在函数
nraizes(这是您编写的函数)上有错误。您说有一个名为 nraizes 的函数,但您没有编写函数,而是编写了一个脚本。要成为一个函数,它需要从一个函数定义开始。 -
我在另一个 .m 文件中编写了函数 nraizes。我现在将编辑帖子并包含 nraizes()。编辑完成。包括 nraizes.m。
-
把函数定义放在文件的第一行。第一行,不是第 7 行。
-
正如烧杯所说,我做到了。它运行良好并给出了正确的图表。但是给出了警告->警告:nraizes:返回值列表中的某些元素未定义 w = [](0x0) 此警告涉及什么?
-
非常感谢 carandraug :)