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!