2013-09-05 31 views
5

Çalışma alanında bir matris oluşturuyorum.Çalışma alanında global olarak matlab değişkeni yap

enter image description here

Şimdi komut değişkeni erişebilir. Değişken yapıyor gibi (2) 4.

Ama içeride dönecektir hata

y=getvariable(2) 
    ??? Undefined function or method 'Variable' for input 
    arguments of type 'double'. 

    Error in ==> getvariable at 3 
    y=Variable(x) 

olsun

function y= getvariable(x) 

y=Variable(x) 
end 

gibi bir işlev Ben de erişebileceği şekilde Variable matris küresel nasıl herhangi bir işlev aracılığıyla? Eğer işlevinde kullanmadan önce olanağından çalışma

  • çağrı global Variable bunu tanımlamak önce

  • cevap

    6

    Eğer globalsi

    >> global Variable = rand(50,12); 
    

    kullanabilirsiniz rağmen ...

    function y = getvariable(x) 
    
        % Always needed 
        global Variable; 
    
        % Here ya go 
        y = Variable; 
    
    end 
    

    FAZLA daha iyi bir alternatiftir kullanmak

    function x = getvariable(x) 
        % no body needed  
    end 
    

    Eğer

    >> y = getvariable(Variable); 
    

    gibi küresel değişkenler için bazı yasal kullanım örnekleri olmasına rağmen

    (Elbette, bu yapmacık örneğin, bu sadece

    >> y = Variable; 
    

    eşit olacaktır) diyoruz ki, Genel olarak, kodunuzu geliştirir ve hatalara daha açık ve hata ayıklamak için çok daha zor hale getirirler. Konuyla ilgili Have a read. @rody önerildiği gibi

    +1

    500 farklı değişken değer içeren bir excel sayfam var. Bu yüzden bir matris değişkeni yapıyorum. Ve sonra onu bir işlevde kullanırım. Ve bu excel değerlerini bir fonksiyon içine girebileceğimi sanmamın bir yolu yoktur. Burada global kullanmaktan kaçınmanın bir yolu var mı? _ – Moz

    +3

    @Moz: ... bu matris değişkenini argüman olarak fonksiyona aktarır mısın? –

    +3

    Neden excel dosyanızı ('xlsread' veya benzeri) okumak ve oradan başlamak için bir işlev kullanmıyorsunuz? – Nick

    3
    1. çağrı global Variable
    2. Sana globaller olarak, fonksiyona değişkenleri geçmesi için başka yollar düşünmek önermek Ancak

    hata ayıklama sırasında zorluklara neden olabilir.

    +4

    alacak lp/matlab/matlab_prog/share-data-between-workspaces.html – am304

    5

    , sadece şeyleri açıklığa kavuşturmak için bir örnek veriyorum fonksiyonu

    içine matrisi ve x geçmektedir.

    Eğer Variable 3. elemanını erişmek istiyorsanız

    function y= getvariable(matrixname,no) 
    y=matrixname(no) 
    end 
    

    olarak işlev Değişken matrisin 10. unsuru erişmek, bu yüzden yapmak istiyorum, bu yüzden

    y = getvariable tip gibi (3 Değişken)

    sen http://www.mathworks.co.uk/he daha ayrıntılı bilgi edinmek için 3 eleman

    İlgili konular