2012-07-12 36 views
22

Trong Matlab, làm thế nào tôi có thể nhận được một String chứa "GRUMPY" được khai báo như sau:Matlab có được chuỗi chứa tên biến

GRUMPY = 500; 

này thường được gọi là phản ánh trong ngôn ngữ lập trình khác, nhưng tôi không thể tìm thấy một ví dụ về nó trong Matlab.

Trả lời

38

MATLAB không cung cấp chức năng built-in cho điều này, nhưng có một cách giải quyết khác, như sử dụng here

Về cơ bản, bạn phải tạo chức năng của riêng bạn để làm điều này. Tận dụng chức năng của Matlab để lấy tên biến của hàm INPUT ARGUMENT thành hàm.

I.e.

function out = varname(var) 
    out = inputname(1); 
end 

Sau đó

GRUMPY = 500; 
name = varname(GRUMPY) 

sẽ cung cấp cho bạn những gì bạn muốn.

+0

Điều đó đã làm các trick! Cảm ơn :) – NWS

+6

Thật tuyệt! Tôi không nghe về 'inputname' trước đây. Tôi sẽ làm điều đó với việc sử dụng các hàm ẩn danh cho trường hợp này mặc dù: 'varname = @ (x) inputname (1)' – Drodbar

+1

@drodbar Đồng ý, giả sử nó hoạt động (không có sẵn Matlab ngay bây giờ). Tất nhiên, nếu bạn muốn có chức năng này trên tất cả các công cụ Matlab của bạn, sau đó bạn cần một tập tin chức năng cư trú trong đường dẫn của bạn với chức năng này vô danh. – Patrick

2

Nếu tôi hiểu đúng bạn nên thử

who GRUMPY 

hoặc

which GRUMPY 
+0

Cả hai đều không tạo ra một chuỗi. Xem lớp học (người GRUMPY) –

Các vấn đề liên quan