Index exceeds matrix dimensions
Afficher commentaires plus anciens
Please find below my code:
readdata=get(handles.uitable2,'data');
readdata=cellfun(@num2str, readdata, 'UniformOutput', false);
[nr,nb]=size(readdata);
for k=1:nr
disp(k)
disp(readdata(k,7))
if strcmp(readdata(k,7),'1')==1
readdata(k,:)='';
range=strcat('J',num2str(indexvec(k)+1));
xlswrite('cylinders record.xls','1','Record',range)
if strcmp(readdata(k,8),'1')==1
range=strcat('K',num2str(indexvec(k)+1));
xlswrite('cylinders record.xls','1','Record',range)
end
end
end
set(handles.uitable2,'data',readdata)
the problem is that i'm getting an error msg that the index exceeds the matrix even though i am making the loop knowing the size of the matrix!!!!
please note that the 7th and 8th column of readdata are of logical format (checkboxes)!!
i would like to add that when no checkbox is checked i don't face this problem, it only occur when a checkbox is checked
5 commentaires
Nagham Kabbara
le 16 Nov 2015
Modifié(e) : Nagham Kabbara
le 16 Nov 2015
Guillaume
le 16 Nov 2015
What is the value of k when the error happens?
Can you add
assert(nb >= 8, 'not enough columns in the cell array')
before the loop and check that the assert does not get triggered?
As an aside, completely unrelated to your problem, why are you converting numbers to strings to then do slow string comparisons when number comparisons are fast? Also, strcmp(x, y) == 1 can be simply strcmp(x, y), the == 1 is just the identity operation. Finally, the normal way to delete a row is by assigning []. Assigning an empty string, '', works, but it's unusual and since there's no comment, begs the question: did you really mean that?
Nagham Kabbara
le 16 Nov 2015
Nagham Kabbara
le 16 Nov 2015
Réponses (0)
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!