2011-08-23 24 views
5

Trong Mathematica, gọi Solve, trả về một danh sách các quy tắc, ví dụ,Mathematica: Trích xuất giá trị số khi sử dụng Giải quyết

In[1]:= g = Solve[(x - 1) (x - 2) == 0, x] 
Out[1]= {{x -> 1}, {x -> 2}} 

Làm thế nào tôi có thể trích xuất các giá trị số 1 hoặc 2 từ g?

Tôi đã thử sử dụng Part ví dụ: g[[1]] nhưng trả về {x -> 1} và không phải 1.

Vui lòng thông báo.

+0

thể trùng lặp của [Làm thế nào để tạo một hàm trực tiếp từ đầu ra của Giải quyết] (http://stackoverflow.com/questions/5319771/how-to-create- a-function-directly-from-the-output-of-giải quyết) –

Trả lời

9
x /. g[[1]] 

Filler -> Ba mươi ký tự tối thiểu

+0

Có cách nào để thực hiện điều này mà không cần sử dụng biến để đặt kết quả giải quyết không? Tôi đã thử 'x ./ Giải quyết [(x - 1) (x - 2) == 0, x]' nhưng nó không thành công ... – Andry

+0

@Andry 'x /. Giải quyết [(x - 1) (x - 2) == 0, x] '... bạn đã có dấu gạch chéo và dấu chấm đảo ngược –

+1

@Andry vui lòng đọc http://mathematica.stackexchange.com/a/18706 này/193 và tất cả các câu trả lời khác ở đó, nếu có thể –

10

Để bổ sung Belisarius' câu trả lời,

x /. g 

với g = {{x -> 1}, {x -> 2}}, trả về danh sách

{1, 2} 

Vì vậy, để trích xuất các giá trị đầu tiên, 1, chúng tôi có thể sử dụng

First[x /. g] 

lựa chọn thay thế khác là

x /. g[[1]] 
(x /. g)[[1]] (* this is equivalent to the version using First *) 
g[[1,1,2]] 
Các vấn đề liên quan