如何将单元格数组内容转换为序数值?

时间:2017-04-09 07:43:13

标签: matlab ordinal

伙计们,我想将此单元格数组转换为序数值,如屏幕截图所示 enter image description here

enter image description here

    catnames = { 'stage i';  'stage ia'; 'stage ii'; 'stage iia'; 'stage iib'; 'stage iic'; 'stage iii'; 'stage iiia';'stage iiib'; 'stage iiic'; 'stage iv'; 'stage iva'; 'stage ivb'};
valueset={1;2;3;4};
for i=1:217
    B = categorical(Ystg{i}(2),catnames,valueset,'Ordinal',true);
end

我已使用此代码但无法正常工作并显示此错误:使用分类时出错 创建一个抽象类的实例'分类'不是 允许的。

1 个答案:

答案 0 :(得分:0)

    for i=1:217
    if strcmpi(Ystg{i}(2),'stage i') || strcmpi(Ystg{i}(2),'stage ia')
        Stage(i,1)  = 1;
    else if strcmpi(Ystg{i}(2),'stage ii') || strcmpi(Ystg{i}(2),'stage iia')|| strcmpi(Ystg{i}(2),'stage iib')|| strcmpi(Ystg{i}(2),'stage iic')
            Stage(i,1) = 2;
        else if strcmpi(Ystg{i}(2),'stage iii') || strcmpi(Ystg{i}(2),'stage iiia')|| strcmpi(Ystg{i}(2),'stage iiib')|| strcmpi(Ystg{i}(2),'stage iiic')
                Stage(i,1)  = 3;
            else if strcmpi(Ystg{i}(2),'stage iv') || strcmpi(Ystg{i}(2),'stage iva')|| strcmpi(Ystg{i}(2),'stage ivb')
                    Stage(i,1) = 4;
                end
            end
        end
    end
end