Effacer les filtres
Effacer les filtres

combine cells with unequal dimensions

3 vues (au cours des 30 derniers jours)
Amr Hashem
Amr Hashem le 25 Juil 2015
i have two tables ( A 13*52 cell & B 19*75 cell )
A
& B
first column in each(A & B) has a some duplicated numbers ( 4368042 - 4324685 - 4321114 )
i want to found duplicated numbers in first columns and if exist copy all rows of it
to a new table consists of [ A , New B]
New B = only duplicated numbers ( 4368042 - 4324685 - 432111)
i write this code:
clear all; clc
tic
[ndata2 text2 alldata2] = xlsread('datecode.xlsx','devtex');
[ndata text alldata] = xlsread('datecode.xlsx','mdr');
[R1,C1]=size(alldata2);
[R2,C2]=size(alldata);
colsize=max(C1,C2);
for i=1:size(alldata,1)
for j=1:R1 %length(Defs)
if alldata2{j,1}==alldata{i,1}
data1(j,:)=alldata(i,:);
end
end
end
new_table=[alldata2,data1];
but i got an error in the last line :
CAT arguments dimensions are not consistent.
Error in ==> mdrtry at 37
new_table=[alldata2,data1];
how i can solve this ?
  8 commentaires
Amr Hashem
Amr Hashem le 25 Juil 2015
Modifié(e) : Amr Hashem le 25 Juil 2015
here is the excel sheet, i worked on and the code i write is :
clear all; clc
tic
[ndata2 text2 alldata2] = xlsread('datecode.xlsx','devtex');
[ndata text alldata] = xlsread('datecode.xlsx','mdr');
[R1,C1]=size(alldata2);
[R2,C2]=size(alldata);
colsize=max(C1,C2);
querydevt=alldata2(:,1);
querymdr=alldata(:,1);
a1 = cat(1,querydevt{:});
a2 = cat(1,querymdr{:});
idx = ismember(a2,a1);
idx2 = [alldata(idx,:)]; % all def texts
idx3 = ismember(a1,a2);
idx4 = [alldata2(idx3,:)];
new_table=[idx4 idx2]
toc
i want to create a new table contain new A and new B which is new_table=[idx4 idx2]
How i can do this?
Amr Hashem
Amr Hashem le 25 Juil 2015
Modifié(e) : Amr Hashem le 25 Juil 2015
I hope a guy pass from here and provide me with an answer :)

Connectez-vous pour commenter.

Réponses (1)

Amr Hashem
Amr Hashem le 26 Juil 2015
this code do what I want :
clear all; clc
tic
[ndata2 text2 alldata2] = xlsread('all.xlsx','all10t14');
[ndata text alldata] = xlsread('mdr1.xlsx','1');
[R1,C1]=size(alldata2);
[R2,C2]=size(alldata);
colsize=max(C1,C2);
querydevt=alldata2(:,1);
querymdr=alldata(:,1);
a1 = cat(1,querydevt{:});
a2 = cat(1,querymdr{:});
idx = ismember(a2,a1);
data1 = [alldata(idx,:)]; % all def texts
idx3 = ismember(a1,a2);
data2 = [alldata2(idx3,:)];
[R3,C3]=size(data1); % size of data1
[R4,C4]=size(data2);
data3=cell([R3,C4]); % to rearrange the data3
for i=1:size(data1,1)
for j=1:length(data1)
if data1{j,1}==data2{i,1} % if MDR of all = MDR of event date
data3(j,:)=data2(i,:); % save data2 'all' newfile 'data3' (56 fields)
end
end
end
match=[data1,data3];
xlswrite('mdr1.xlsx',idx2,2);
toc
Thanks to you all :)

Catégories

En savoir plus sur Entering Commands dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by