Tôi biết điều này thực sự là cơ bản, nhưng tôi mới làm quen với MATLAB. Sau khi mở tệp .fig, làm cách nào bạn thực sự làm việc với dữ liệu được vẽ trong cửa sổ lệnh? Tất cả những gì tôi thấy là cốt truyện. Tôi không chắc chắn làm thế nào để thực sự có được dữ liệu.Làm cách nào để trích xuất dữ liệu từ tệp .fig trong MATLAB?
Trả lời
Sử dụng lệnh HGLOAD. Tài liệu tham khảo có sẵn here.
Thử tải hgload và sau đó xoay quanh cấu trúc xử lý đồ họa mà nó trả về. Ví dụ, nếu bạn vẽ và lưu như sau:
x=0:.01:10;
y=sin(x);
h=plot(x,y);
saveas(h,'testfigure.fig');
rõ ràng không gian làm việc của bạn, và mở hình lưu sử dụng hgload:
clear
close all
h=hgload('testfigure.fig');
Bạn có thể kiểm tra của nhân vật xử lý h bằng cách gọi
get(h)
Hoặc đi sâu hơn nữa vào trục/tiêu đề/truyền thuyết bằng cách gọi
ch=get(h,'Children');
Nếu bạn đang sử dụng mã trong ví dụ của tôi, bạn chỉ nên có một con cho hình, đó sẽ là các trục. Gọi cho trẻ em của các trục, và bạn nên có một dòng.
l=get(ch,'Children');
Tiếp theo, hãy gọi trường 'Xdata' và 'Ydata' của dòng và bạn có dữ liệu gốc.
x=get(l,'Xdata');
y=get(l,'Ydata');
Nếu bạn có con số phức tạp hơn so với chỉ trục, nó sẽ khó khăn hơn một chút. Bạn sẽ cần khám phá từng đứa trẻ để xác định xem đó có phải là cốt truyện bạn muốn trích xuất dữ liệu hay không.
Bạn cũng có thể sử dụng [FINDOBJ] (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/findobj.html) chức năng để tìm kiếm một đối tượng đồ họa với một tập hợp các cặp tham số-giá trị nhất định thay vì phải bước theo cách của bạn thông qua phân cấp cha-con. Điều này sẽ có hiệu quả nhất nếu thuộc tính ''Tag'' của các đối tượng được đặt thành số nhận dạng duy nhất * trước * được lưu dưới dạng tệp .fig. – gnovice
Bạn chỉ có thể tìm kiếm các tay cầm trực tiếp (mặc dù bạn nên đóng chú giải trước). Ví dụ: 'lineH = findobj (h, 'type', 'line')'. Nếu bạn có nhiều dòng và bạn chỉ muốn dòng màu đỏ, bạn có thể sử dụng 'findobj' với nhiều tiêu chí tìm kiếm, chẳng hạn như' redLineH = findobj (h, 'type', 'line', 'color', 'r') ; ' – Jonas
@gnovice và @Jonas - Tôi nghĩ rằng tôi đã chạy qua findobj trước đây, nhưng tôi thậm chí không nghĩ đến việc áp dụng nó vào tình huống này. Đề xuất tuyệt vời! – Doresoom
Đây là cách thực sự đơn giản:
Nhấp vào đối tượng bạn muốn lấy dữ liệu. Sẽ không có dấu hiệu cho thấy bạn đã nhấp vào nó.
>> xd = get(gco,'XData');
>> yd = get(gco,'YData');
Đôi khi khó có thể nhấp vào dòng hoặc chính đối tượng khác. Nếu bạn có vấn đề này, nhấp chuột vào các trục có chứa (các) con bạn quan tâm, sau đó:
>> kids = get(gca,'Children');
này sẽ cung cấp cho bạn một loạt các xử lý cho trẻ em khác nhau. Bạn có thể thử tìm từng tệp một bằng cách lập chỉ mục cho trẻ em hoặc sử dụng thông tin sau để nhận tất cả dữ liệu cùng một lúc. Điều này sẽ trả lại kết quả dưới dạng mảng ô, có thể hơi phức tạp nếu bạn chưa sử dụng chúng trước đây:
>> xd = get(kids,'XData');
>> yd = get(kids,'YData');
>> xd1 = xd{1}; %# X Data from first line
Thực ra, bạn thậm chí không cần phải hiển thị hình để lấy dữ liệu . Các tệp FIG được lưu trữ ở định dạng Matlab MAT chuẩn, mà bạn có thể đọc bằng chức năng tích hợp sẵn tải(). Số liệu xử lý và dữ liệu được lưu trữ trong một cấu trúc mà bạn có thể dễ dàng hiểu và xử lý.
Tôi đã đăng một bài viết chi tiết về điều này: http://undocumentedmatlab.com/blog/fig-files-format/ –
- 1. Làm cách nào để trích xuất siêu dữ liệu từ tệp mp3 trong phát triển ios
- 2. cách trích xuất dữ liệu từ tệp xml bằng notepad ++?
- 3. Lưu tệp .fig từ Octave
- 4. Xuất dữ liệu từ MATLAB sang csv
- 5. tính năng trích xuất matlab trong matfile
- 6. Trích xuất dữ liệu từ Wikipedia API
- 7. Có cách nào để Trình tích hợp dữ liệu Oracle trích xuất dữ liệu từ MongoDB
- 8. C# trích xuất dữ liệu từ XML
- 9. Làm cách nào để trích xuất/phân tích dữ liệu bảng từ một tệp văn bản trong Perl?
- 10. Làm cách nào để trích xuất dữ liệu từ một DataTable?
- 11. Cách tìm/trích xuất dữ liệu từ xml bằng jQuery
- 12. Làm thế nào để trích xuất dữ liệu từ một phản ứng SOAP trong Java?
- 13. Làm cách nào để trích xuất tệp tar trong Java?
- 14. Làm thế nào để trích xuất siêu dữ liệu từ mp3?
- 15. Làm cách nào để xuất dữ liệu từ SQL Server?
- 16. Làm cách nào để trích xuất một tệp đơn lẻ từ tệp lưu trữ từ xa?
- 17. Sử dụng R để tải xuống tệp dữ liệu nén, trích xuất và nhập dữ liệu
- 18. Làm cách nào để xuất dữ liệu từ umbraco CMS?
- 19. Trích xuất dữ liệu với Excel
- 20. Làm thế nào để trích xuất dữ liệu từ lô matplotlib
- 21. Trích xuất dữ liệu nén zlib từ tệp nhị phân trong python
- 22. Làm cách nào để trích xuất tên tệp từ đường dẫn bằng Perl?
- 23. Trích xuất dữ liệu khác từ luồng mjpeg qua http
- 24. Trích xuất một chuỗi từ một khung dữ liệu
- 25. Trích xuất dữ liệu số Python
- 26. trích xuất các từ từ một tệp
- 27. Làm cách nào để trích xuất văn bản từ tệp PDF trong Perl?
- 28. Làm cách nào để trích xuất một đoạn byte đơn lẻ từ bên trong một tệp?
- 29. Cách tốt nhất để trích xuất dữ liệu từ cơ sở dữ liệu FileMaker Pro trong tập lệnh là gì?
- 30. Làm cách nào để trích xuất góc quay từ QTransform?
Câu hỏi hay, nhưng tôi muốn thay đổi tiêu đề để cụ thể hơn. – yuk
@yuk: Hỏi và các bạn sẽ nhận được. ;) – gnovice