Index exceeds matrix dimensions
古いコメントを表示
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 件のコメント
Nagham Kabbara
2015 年 11 月 16 日
編集済み: Nagham Kabbara
2015 年 11 月 16 日
Guillaume
2015 年 11 月 16 日
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
2015 年 11 月 16 日
Nagham Kabbara
2015 年 11 月 16 日
回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!