필터 지우기
필터 지우기

How to show only the same variable

조회 수: 1 (최근 30일)
Alikouider
Alikouider 2021년 12월 11일
댓글: Alikouider 2021년 12월 12일
Hello,
I have a .mat file as following
Name adress company
BOB london BIM
Alfred Paris BOB
John BOB CEF
I would like to display only the duplicate variable in or order to create this new .mat file
Name adress company
BOB
BOB
BOB
If someone have an idea to create the adapted code?
Thanks in advance
  댓글 수: 5
Image Analyst
Image Analyst 2021년 12월 12일
You accepted Walter's answer, so we assume everything is working perfectly now.
Alikouider
Alikouider 2021년 12월 12일
I accepted walter's code
But chunru's code is more adapted to what I was looking for
walter's code is more complicated to adapt for the moment
so I focused on chunru's code and i saw that the duplication of the entries didn't work
dup = mode(Tcv); % duplicated entries (using mode)
this function doesn't seem to work
the same names (not variables) are randomly put in the table
I should keep the names which are the same and that appear in more than one variable.
Thanks for your understanding

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2021년 12월 11일
common_values = intersect(intersect(Name, adress), company);
N = length(Name);
NName = strings(N, 1);
mask = ismember(Name, common_values);
NName(mask) = Name(mask);
Nadress = strings(N, 1);
mask = ismember(adress, common_values);
Nadress(mask) = adress(mask);
Ncompany = strings(N, 1);
mask = ismember(company, common_values);
Ncompany(mask) = company(mask);
output = table(Nname, Nadress, Ncompany, 'VariableNames', {'Name', 'adress', 'company'});
  댓글 수: 8
Walter Roberson
Walter Roberson 2021년 12월 12일
A = readtable('DataFilter.xlsx','TextType','string');
names_by_var = varfun(@unique, A, 'OutputFormat', 'cell');
[G, ID] = findgroups(categorical({names_by_var{:}}));
counts = accumarray(G, 1);
names_with_dups = ID(counts>1);
is_dup = varfun(@(V) ismember(categorical(V), names_with_dups), A, 'OutputFormat', 'uniform');
Aarray = table2array(A);
B = strings(size(Aarray));
B(is_dup) = Aarray(is_dup);
Alikouider
Alikouider 2021년 12월 12일
Error using categorical could not find unique values in DATA using the UNIQUE function.
Error in [G, ID] = findgroups(categorical({names_by_var{:}}));
Caused by:
Error using cell/unique Cell array input must be a cell array of character vectors.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

태그

제품


릴리스

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by