Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 倍频程fzero不是有效的初始括号_Loops_Octave - Fatal编程技术网

Loops 倍频程fzero不是有效的初始括号

Loops 倍频程fzero不是有效的初始括号,loops,octave,Loops,Octave,为什么此for循环给出错误:fzero:不是有效的初始括号 代码: 您的代码在MatlabR2015B中运行良好。我猜Octave's使用了一个不同的例程来查找根的括号,而只提供了一个初始猜测(或者您使用的是Octave/fzero的旧版本,它不支持单值选项) 您可以尝试提供自己的函数,从单个初始猜测中找到有效的括号。请参见MathWorks创始人克里夫·莫勒(Cleve Moler)的这篇文章,特别是示例signchange函数。在signchange函数的路径上创建一个M文件(或子函数),然

为什么此for循环给出错误:fzero:不是有效的初始括号

代码:


您的代码在MatlabR2015B中运行良好。我猜Octave's使用了一个不同的例程来查找根的括号,而只提供了一个初始猜测(或者您使用的是Octave/
fzero
的旧版本,它不支持单值选项)

您可以尝试提供自己的函数,从单个初始猜测中找到有效的括号。请参见MathWorks创始人克里夫·莫勒(Cleve Moler)的这篇文章,特别是示例
signchange
函数。在
signchange
函数的路径上创建一个M文件(或子函数),然后尝试:

x = 0:0.1:50;
h = @(x) cos(x);
g = @(x) exp(a*x)-1;
f = @(x) h(x) - g(x);

c = zeros(length(x),1)
for i=1:length(x)
    [a,b] = signchange(f,x(i))
    c(i) = fzero(f,[a b]);
end

plot(x, f(x));
hold on
plot(c,f(c),'-xr')
hold off

什么是
a
?此错误发生在
i
的哪个值?我想你想要
c=0(长度(x),1)。在输入中询问a的值。进行编辑以包含。这不是很有帮助。运行代码时输入的
a
的实际值是多少。然后在
for
循环中打印出
i
,以确定错误发生的时间。非常感谢您的帮助,但我在不使用signchange aproach的情况下成功地保持了它的工作状态。我会保留你的答案以备将来使用:)
x = 0:0.1:50;
h = @(x) cos(x);
g = @(x) exp(a*x)-1;
f = @(x) h(x) - g(x);

c = zeros(length(x),1)
for i=1:length(x)
    [a,b] = signchange(f,x(i))
    c(i) = fzero(f,[a b]);
end

plot(x, f(x));
hold on
plot(c,f(c),'-xr')
hold off