如何创建多维数组分配对象?

4视图(30天)
嗨,我只是工作在一个更大的计划,与两个随机分布的变量:
X输入产品(生产)Y输出产品(下载188bet金宝搏需求)
两个随机变量有两个参数,所以a和b属于X和c和d属于y .我现在在两者的结合,需要结合分布存储在一个四维数组来反映了所有可能的组合。我最初想创建一个“空”的一系列匹配的尺寸是:
一个= (1 2 3 4);
6 b = [5];
c = [7 8 9];
d = (1 2 3 4 5);
i = 1:长度(a)
j = 1:长度(b)
k = 1:长度(c)
l = 1:长度(d)
测试(i, j, k, l) = makedist (“正常”,0,0);
结束
结束
结束
结束
问题是现在,matlab似乎没有默认distribution-object包含在库和发生错误:
在数组扩张:没有定义默认的类“prob.NormalDistribution”。“getDefaultScalarElement”超类概率方法。ProbabilityDistribution缺失或错误的定义。
我很幸运找到一个解决方案之前就设置元素的二维一个默认的元素是需要我扩大这一个三维数组。然而,如果我试着扩展解决方案同样的4维再次发生错误:
clc
清晰的
一个= [100 5 5 7];
4 4 5 6 b = [10];
c = [100 2 6 7 9 9];
d = [1 4 5 5];
i = 1:长度(a)
测试(我:)= makedist (“正常”,0,0);
j = 1:长度(b)
测试(i, j) = makedist (“正常”,0,0);
结束
结束
测试
i = 1:长度(a)
test2(我::)= makedist (“正常”,0,0);
j = 1:长度(b)
test2 (i, j:) = makedist (“正常”,0,0);
k = 1:长度(c)
test2 (i, j, k) = makedist (“正常”,0,0);
结束
结束
结束
test2
i = 1:长度(a)
test2(我::,:)= makedist (“正常”,0,0);
j = 1:长度(b)
test2 (i, j,:,) = makedist (“正常”,0,0);
k = 1:长度(c)
test2 (i, j, k:) = makedist (“正常”,0,0);
l = 1:长度(d)
test2 (i, j, k, l) = makedist (“正常”,0,0);
结束
结束
结束
结束
test3
在前两个版本是完美运行,即使有意,给匹配distribution-object数组,但四维了以下错误:
数组扩张:
没有类的默认定义“prob.NormalDistribution”。
方法“getDefaultScalarElement”超类概率。ProbabilityDistribution缺失或错误的定义。
错误在Untitled(29)行
test3(我::,:)= makedist (“正常”,0,0);
当我首先定义三维数组,test3 = test2,错误的转向
test3 (i, j, k, l) = makedist(“正常”,0,0);
一旦d =[]有多个元素。我也试图设置在其他3 d循环循环但错误总是发生在四维空间的指针转向2。我不知道为什么这个错误只发生在4维,我的理解也应该发生在三维,或两个版本应该运行两者兼得,我不能理解为什么一个工作,另一个不是。
这将是很好,如果有人可以帮助我与这个问题或给我一个提示如何创建这个AxBxCxD数组分配对象以另一种方式。谢谢你的帮助
2的评论
亚历克斯
亚历克斯 2013年10月2日
对不起,我没有看到按钮,我重新格式化它,谢谢

登录置评。

接受的答案

汤姆巷
汤姆巷 2013年10月2日
这样子我们应该在将来发布的版本中修复。与此同时,也许你会发现这个方法有用:
一个= makedist (“正常”);%建立单一分布对象
= repmat(一个[2 3 4 5]);%扩张所需的大小
(2、3、4、5)= makedist (“威布尔”);%填写你真正想要的值
1评论
亚历克斯
亚历克斯 2013年10月3日
啊太好了,这是最完美的解决方案,非常感谢!

登录置评。

更多的答案(0)

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!