替换丢失的表中的字符串
21日视图(30天)
显示旧的评论
我想用字符串替换所有失踪的字符串表中选择,说“未知”。我使用R2016a(没有升级选项),所以功能
fillmissing
没有提供给我,以防他们可以帮助。例如:
dblVar =[南;3;7;9);
cellstrVar = {“一个”;“三”;”;“九”};
categoryVar =分类({”;“红色”;“黄色”;“蓝”});
=表(dblVar cellstrVar categoryVar)
一个=
dblVarcellstrVarcategoryVar
___________________________
南“一个”<定义>
3“三”红色的
7”黄色的
9“九”蓝色的
我想要得到这个:
一个=
dblVarcellstrVarcategoryVar
___________________________
南“一个”未知的
3“三”红色的
7“未知”黄色的
9“九”蓝色的
注意我也取代了直言“<定义>”,如果你能请包括在你的答案。
有方法吗
没有
变化的结构,如从表到细胞,在此过程中吗?我想避免转换的原因是我的表很大,和转换可能导致内存问题。
编辑添加:失踪的字符串值的位置必须确认,可能会有几个这样的表中的列。
多谢。
0评论
接受的答案
乔治
2016年9月28日
这应该工作:
dblVar =[南;3;7;9);
cellstrVar = {“一个”;“三”;”;“九”};
categoryVar =分类({”;“红色”;“黄色”;“蓝”});
cellstrVar2 = {“四”;“没有”;“7”;”};
=表(dblVar cellstrVar、categoryVar cellstrVar2);
varNames = A.Properties.VariableNames;
为2 = 1:元素个数(varNames)
如果iscellstr ({1, varNames{二}})
undefloc = strcmp (a . (2)”);
一个{undefloc,二}= cellstr (“未知”);
结束
如果iscategorical ({1, varNames{二}})
undefloc = isundefined ({: 2});
{undefloc,二}=分类(cellstr (“未知”));
结束
结束
一个=
dblVarcellstrVarcategoryVarcellstrVar2
______________________________________
南“一个”未知的“四”
3“三”红色的“没有”
7“未知”黄色的“7”
9“九”蓝色的“未知”
您可以使用
undefloc
变量来找出事情未定义或空字符串。
答案(1)
彼得·珀金斯
2016年10月3日
乔治的循环似乎好我虽然可以调整一下
为name = varNames
var = A.name;
如果iscellstr (var)
var (strcmp (var,”))= {“未知”};
elseifiscategorical (a .(名字)
var (isundefined (var) =“未知”;
结束
一个。Name = var;
结束
如果你愿意写几个小功能,你可以这样做:
theCellStrs = varfun (@iscellstr);
(:,theCellStrs) = varfun (@replaceEmptyString (:, theCellStrs));
函数c = replaceEmptyString (c)
c (strcmp (c,”)= {“未知”};
(同样的分类),但varfun使用下一个循环。