replace long string of variables
显示 更早的评论
Hi,
I have a script like below. The problem is that I must to create until index50, how can I write the script more easier and faster?
index1= strcmp(a(:,1), 'mama') & strcmp(a(:,3), '1');
val1 = unique(index1);
val_unica1 = nnz(val1);
index2= strcmp(a(:,1), 'mama') & strcmp(a(:,3), '2');
val2 = unique(index2);
val_unica2 = nnz(val2);
index3= strcmp(a(:,1), 'mama') & strcmp(a(:,3), '3');
val3 = unique(index3);
val_unica3 = nnz(val3);
total= sum(val_unica1) + sum(val_unica2) + sum(val_unica3);
2 个评论
Very interesting code. Because STRCMP returns a boolean array:
index1= strcmp(a(:,1), 'mama') & strcmp(a(:,3), '1');
this line:
val1 = unique(index1);
will return one of [], FALSE, TRUE, or [FALSE,TRUE]. You then count how many times TRUE occurs:
val_unica1 = nnz(val1);
which will return either 0 or 1. It would be simpler and more efficient to use ANY.
Cristian Martin
2022-6-1
编辑:Cristian Martin
2022-6-1
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!