替换特定的行值在一个单元中基于一个条件

7视图(30天)
我有一个1600年x1细胞,每一行包含两个字符串之一——a或B。
我试图用双打(0,B 1),但是有一些困难。“= =”操作符不工作,因为它是一个细胞。我试图将它转换成一个向量(通过cell2mat)失败的非常独特:
错误使用的猫
维数组的连接是不一致的。
错误cell2mat(第83行)
m {n} =猫(1 c {: n});
错误my_file(第149行)
坳= cell2mat (col)
我的问题是两个(只有第一个是很重要的,其次是只是好奇心):
1 -我如何替换字符串A和B在我1600分别与0和1 x1细胞?
2 -为什么cell2mat失败时,试图把一个资料片细胞?

接受的答案

沃斯
沃斯 2022年6月24日
C = {“stringA”;“stringA”;“stringB”;“stringA”}
C =4×1单元阵列
{' stringA} {‘stringA} {‘stringB} {' stringA '}
C_logical = strcmp (C,“stringB”)%的逻辑
C_logical =4×1逻辑数组
0 0 1 0
C_double =双(strcmp (C,“stringB”))%的两倍
C_double = 4×1
0 0 1 0
cell2mat (C)%作品因为C中包含的所有字符向量长度相同
ans =4×7字符数组
“stringA”“stringA”“stringB”“stringA”
C {3} =“stringBB”
C =4×1单元阵列
{' stringA} {‘stringA} {‘stringBB} {' stringA '}
cell2mat (C)%不工作,因为不是所有的字符中包含向量C是相同的长度
错误使用的猫
维数组的连接是不一致的。

错误cell2mat(第83行)
m {n} =猫(1 c {: n});
2的评论
沃斯
沃斯 2022年6月24日
编辑:沃斯 2022年6月24日
表(T = {“stringA”;“stringA”;“stringB”;“stringA”},(1;2;3;4))
T =4×2表
Var1 Var2 ___________ ____{' stringA} 1 {‘stringA} 2 {‘stringB} 3 {‘stringA} 4
% T。Var1 = strcmp (T.Var1 stringB) %的逻辑
T。Var1 =双(strcmp (T.Var1,“stringB”))%的两倍
T =4×2表
Var1 Var2 ____ ____0 1 0 2 1 3 0 4

登录置评。

更多的答案(0)

类别

找到更多的在细胞数组帮助中心文件交换

社区寻宝

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

开始狩猎!