我如何使用字符串值保存在一个细胞数组变量名在一个for循环。

37视图(30天)
我想使用一个单元阵列字符串值作为一个变量名在一个for循环。所以每次迭代中会创建一个新变量的字符串值。也可能改变/添加一些文本每个迭代的变量名称。我认为它更容易查看代码,看看。而是我想什么。
Dist_type = {“内核”,“伽马”,“正常”,“威布尔”,“稳定”,“物流”,“GeneralizedExtremeValue”};
p =“_pdf”;
c =“_cdf”;
i = 1:元素个数(Dist_type)
dis_obj = fitdist (testData Dist_type{:,我});
%生成pdf和cdf j和k值,并将它们分配给变量
j = pdf (dis_obj testData);
k = cdf (dis_obj testData);
%在某种程度上重命名j和k的特定dist_type名称和附加p =“_pdf”和c =“提供”。作为一个例子
%第一次迭代创建的两个变量是“kernel_pdf”和“Kernel_cdf”
%这个循环会产生一个单独的pdf和cdf分布类型。
% j = append (Dist_type {,,}, p);
% k = append (Dist_type {,,}, c);
%与每个pdf和cdf testData值合并成一个表
% j =表(testData);
% k =表(testData);

接受的答案

Chunru
Chunru 2021年11月29日
你可以把结果放在一个struct Dist_type字段名称对应
负载Test_Data.mat
Dist_type = {“内核”,“伽马”,“正常”,“威布尔”,“稳定”,“物流”,“GeneralizedExtremeValue”};
p =“_pdf”;
c =“_cdf”;
i = 1:元素个数(Dist_type)
dis_obj。(Dist_type{我})= fitdist (testData, Dist_type{我});
结束
警告:最大似然估计的形状参数α融合到一个边界点。
置信区间和标准错误不能可靠地计算。
dis_obj
dis_obj =结构体字段:
内核:[1×1概率。KernelDistribution] Gamma:[1×1概率。GammaDistribution]正常:[1×1概率。NormalDistribution]威布尔:(1×1概率。WeibullDistribution]稳定:[1×1概率。StableDistribution)物流:[1×1概率。LogisticDistribution] GeneralizedExtremeValue (1×1 prob.GeneralizedExtremeValueDistribution):

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2021年11月29日
我们不推荐。
相反,在循环中使用正常的变量名,但当你生成表()然后使用“VariableNames”属性设置列的名称。
如果你想创建这些表,然后把它们放在一个单元阵列,或把它们作为结构体字段(使用动态字段名称)

类别

找到更多的在字符和字符串帮助中心文件交换

社区寻宝

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

开始狩猎!

翻译的