2017-03-02 63 views
0

继承人我到目前为止我有点困惑,如果我要走向正确的方向 和如何处理函数和如何计算概率使用什么变量?我是新来的编程,所以任何帮助,将不胜感激 在此先感谢在matlab中的学校任务寻找函数的概率

创建一个代码,无论函数输入代码(下面的例子将对应于f(x)= 0.01 * x。^ 2 + sin (0.5 * 2 * pi * x)),您将计算其概率。对于输入的所有函数x将以0.1为增量从0到50。为此,您必须询问用户他/她想要使用多少个垃圾箱(提示:用户选择的任何数字,加1),然后创建垃圾箱限制。 bin限制是通过创建一个从f(x)的最小值到f(x)的最大值的线性间隔阵列来创建的,该阵列具有用户输入的元素数量(请记住已应用+1 )。 现在你已经有了bin值,创建一个for循环来检查每个bin中f(x)的值有多少。请记住,每个垃圾桶的概率是通过匹配数/总点数来计算的。 一旦计算出每个箱的概率,就创建一个2x1子图,其中最上面的图是原始函数与x的关系。底部图是每个箱与箱数的概率。

clear; 
close all; 
clc; 

x = 0:50:.1; % vector for x 
f = x^2; %declaring f as a function 
prompt = 'enter number of bins:' 
bin = input(prompt); 
binlimit = linspace(x, length(x), bin+1); 
ii = 0; 
for i=1:length(binlimit) 
    values = binlimit(0, end); %supposed to return values in binlimit 
    prob = bin/values; %calculate probability 
    disp(prob) 
end 

回答

0

你是不是在声明函数与f = x^2

x = 0:50:.1; % this is wrong 
x = 0:.1:50; % from zero to 50, increment by .1 

为了得到F(X),

f = 0.01*x.^2 + sin(0.5*2*pi*x) 

我想,你可以做休息。

+0

好的,感谢帮助为什么我得到一个“下标指数的错误必须是真正的正整数或逻辑?在声明它之后我该如何处理这个函数?我如何将它集成到垃圾箱? – Roge

+0

检查您收到该错误的哪一行。你可以很容易地找到你的问题的答案。只需在谷歌搜索,如果你不能在这里找到问。 https://www.mathworks.com/matlabcentral/answers/102145-why-do-i-get-the-error-subscript-indices-must-either-be-real-positive-integers-or-logicals。确保矩阵索引从1开始,而不是从0开始,并且索引始终为正整数 – smttsp