How to fix the "Improper index matrix reference" error in my Data Extraction coding?
조회 수: 3 (최근 30일)
이전 댓글 표시
I am trying to extract data from the MATLAB figure named "NF power_Aulayers_etch_glass-by-glass_xz" as attached. But, when I run the code, it doesn't extract the data, rather it shows "Improper index matrix reference" this message. So, how do I resolve the error and extract data from the figure?
//
fig = openfig('NF power_Aulayers_etch_glass-by-glass_xz.fig');
Extracted_data = findobj(fig,'-property','XData','-property','YData','-property','Zdata');
x = Extracted_data(1).XData;
y = Extracted_data(1).YData;
z = Extracted_data(1).ZData;
//
댓글 수: 0
답변 (1개)
dpb
2021년 8월 1일
편집: dpb
2021년 8월 2일
hF=openfig('NF power_Aulayers_etch_glass-by-glass_xz.fig');
hAx=hF.Children; % the axes object handle
hS=hAx.Children; % the children of the axes 2-array
hS=hS{2}; % the surface handle is second of the two
X=hS.XData;
etc., ...
Given the roundabout of the above, I'd suggest the more direct
>> hS=findobj(hF,'type','surface')
hS =
Surface with properties:
EdgeColor: 'none'
LineStyle: '-'
FaceColor: 'flat'
FaceLighting: 'flat'
FaceAlpha: 1
XData: [251×1 double]
YData: [81×1 double]
ZData: [81×251 double]
CData: [81×251 double]
Show all properties
>>
or your original will result in same thing--
>> hS=findobj(hF,'-property','XData')
hS =
Surface with properties:
EdgeColor: 'none'
LineStyle: '-'
FaceColor: 'flat'
FaceLighting: 'flat'
FaceAlpha: 1
XData: [251×1 double]
YData: [81×1 double]
ZData: [81×251 double]
CData: [81×251 double]
Show all properties
>>
댓글 수: 6
Fangjun Jiang
2021년 8월 11일
편집: Fangjun Jiang
2021년 8월 11일
Where is the error message? Can you show the commands and error message when it happened?
The fact that X, Y and Z data show up means your quoted code has been executed successfully.
참고 항목
카테고리
Help Center 및 File Exchange에서 Graphics Object Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!