if the cell duplicated put last column in the previous row

i run this code but it gives an error:
j=1;
rowsize=length(defs);
data1=cell([rowsize,C2]); % create array with size [R,C]
for j=1:length(defs) % loop over Mdr of defib
querymdr=data2{j,1}; % save MDR numbers
y=alldata{:,1};
idx= find(y==querymdr); % find in alldata MDR equals def
record=[alldata{idx(1),:}]; % copy the 1st search result
for k=2:length(idx)% over all MDR number of text
record = [record,(alldata(idx(k),6))];
end
data1(j,:)=record; % put combined record into result table
end
what is the wrong thing ?

5 Comments

What is the error message and which line of code does it appear on?
@amr: Without seeing the error message and without your input data there is no chance to find the problem of your code.
the error message is: Index exceeds matrix dimensions.
in line:
record=[alldata{idx(1),:}];
What is class(y) and size(y) when the problem occurs?
Also your code does not account for the possibility of there being no match.
i adjust the code to be :
for j=1:length(defs)
querymdr=data2(:,1);
y=alldata(:,1);
idx= find(y==querymdr); % find matched cells
record= alldata(idx,:);
it gives me an error in idx= find(y==querymdr); % y has 37*1 cell and querymdr has 5*1 cell
they are matched columns, but y has 37 cell and querymdr has 5 only. i want to find the matched cells.
what is wrong?

Sign in to comment.

 Accepted Answer

Maybe idx is empty (i.e., the find didn't result in a match). Do this to verify:
dbstop if error
Then run your code. When the error occurs, the execution will pause and you can examine variable sizes to confirm the problem and why it occurred.

2 Comments

i adjust the code to be :
for j=1:length(defs)
querymdr=data2(:,1);
y=alldata(:,1);
idx= find(y==querymdr); % find matched cells
record= alldata(idx,:);
it gives me an error in idx= find(y==querymdr); % y has 37*1 cell and querymdr has 5*1 cell
what is wrong?
You created a new Question for this, so no point answering here.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!