2011-03-01 32 views
12

Tôi không biết nếu MATLAB có thể làm điều này, và tôi muốn nó hoàn toàn cho thẩm mỹ trong mã của tôi, nhưng MATLAB có thể tạo hai biến cùng một lúc?Xác định nhiều biến cùng một lúc trong MATLAB?

Ví dụ

x = cell(4,8); 
y = cell(4,8); 

Có cách nào để viết một cái gì đó mã tương tự như:

x&y = cell(4,8); 
+1

Tìm kiếm tính thẩm mỹ trong mã MATLAB luôn là một trận chiến khó khăn. Nhưng hãy xem câu trả lời của tôi bên dưới. –

+1

Nếu bạn muốn khởi tạo các biến với các giá trị * khác nhau *, thì đây là bản sao của [Làm cách nào để thực hiện nhiều phép gán trong MATLAB?] (Http://stackoverflow.com/questions/2337126/how-do-i- do-multiple-assignment-in-matlab) Nếu bạn muốn khởi tạo chúng với giá trị * cùng *, sau đó [đề xuất của Andrew] (http://stackoverflow.com/questions/5158032/define-multiple-variables-at-the -same-time-in-matlab/5158206 # 5158206) để sử dụng [DEAL] (http://www.mathworks.com/help/techdoc/ref/deal.html) là những gì bạn muốn. – gnovice

Trả lời

25

Sử dụng danh sách bằng dấu phẩy để có được nhiều biến ở phía bên tay trái của biểu thức.

Bạn có thể sử dụng deal() để đặt nhiều bài tập một dòng.

[x,y] = deal(cell(4,8), cell(4,8)); 

Gọi nó bằng một đầu vào đơn và tất cả các kết quả đầu ra đều có cùng giá trị.

[x,y] = deal(cell(4,8)); 

>> [a,b,c] = deal(42) 
a = 
    42 
b = 
    42 
c = 
    42 
+0

Điều này là hoàn hảo, cảm ơn bạn rất nhiều. – user379362

3

Tùy thuộc vào chức năng bạn sử dụng để tạo dữ liệu. Bạn có thể tạo chức năng của riêng bạn trong MATLAB có nhiều đầu ra:

[a, b, c] = foo(); 

Nhiều chức năng dựng sẵn cũng có tùy chọn này. Nhưng điều này phải được hỗ trợ trực tiếp bởi hàm trả về.

+0

Có, chúng được hỗ trợ. Như bạn thấy, cú pháp dấu phẩy là câu trả lời. –

+0

OK. Tôi vừa mới xóa dòng cuối cùng khỏi câu trả lời của bạn. –

+0

Tôi thậm chí còn thích câu trả lời của bạn hơn. Mặc dù không tiết lộ chi tiết, "Làm cách nào để trả lại các giá trị này ở định dạng đó?" không có trong câu hỏi. –

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