【问题标题】:School assignment in matlab looking for the probability of a functionmatlab中的学校作业寻找函数的概率
【发布时间】:2017-03-03 05:25:59
【问题描述】:

这就是我到目前为止所拥有的我有点困惑我是否朝着正确的方向前进 以及如何处理函数以及如何使用哪些变量计算概率?我是编程新手,所以任何帮助将不胜感激 提前致谢

创建一个代码,无论在代码中输入什么函数(下面的示例将对应 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) 值。请记住,每个 bin 的概率是通过匹配数/总点数计算的。 计算出每个 bin 的概率后,创建一个 2x1 子图,其中上图是原始函数 vs. x。底部图是每个 bin 与 bin 编号的概率。

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

【问题讨论】:

    标签: matlab


    【解决方案1】:

    你没有用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)
    

    我想,剩下的你可以做。

    【讨论】:

    • 好的,感谢您的帮助,为什么我会收到“下标索引必须是真正的正整数或逻辑?”的错误?声明后我该如何处理该函数?我如何将它集成到垃圾箱中?
    • 检查您在哪一行收到该错误。您可以轻松找到问题的答案。 google 一下就行了,如果没找到可以在这里问。 mathworks.com/matlabcentral/answers/…。只需确保矩阵索引从 1 开始,而不是 0。并且索引始终为正整数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 2019-12-12
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多