21 Ekim 2021, 17:41:56

Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d


Matlab'te Matris İşlemi

Başlatan vitruvius, 15 Nisan 2012, 18:31:56

vitruvius

Merhaba aşağıdaki resimde verdiğim matrislerle yapılan işlemi matlab'te nasıl yapabilirim acaba? K matrisinde bilinmeyen olduğu için tanımlayamadım.

Teşekkür ederim.


ferdem


k1 
sym('k1');
k2 sym('k2');
k3 sym('k3');
kvektor=[k1 k2 k3];

Şeklinde harfli ifadelerden oluşan vektör oluşturabilirsiniz. Bu vektörü sayılardan oluşan matrisle çarpabilirsiniz:
a=[1 2 34 5 67 8 9];
kvektor=[k1 k2 k3].';
a*kvektor
 
ans =
 
   k1 + 2*k2 + 3*k3
 4*k1 + 5*k2 + 6*k3
 7*k1 + 8*k2 + 9*k3

OptimusPrime

ferdem
bir matrisi vektöre ve vektörüde matrise dönüştürmenin kısa bir yolu var mı???
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

lordsandman

Alıntı yapılan: OptimusPrime - 16 Nisan 2012, 00:40:08
ferdem
bir matrisi vektöre ve vektörüde matrise dönüştürmenin kısa bir yolu var mı???

Örneğin "A" 10 elemanlı bir matris ise reshape(A',10,1) bunu vektöre dönüştürür

"B" vektörünüz ise; C = vec2mat(B,kolon) matrise dönüştürür, fakat her seferinde 1 satır olmak üzere. vec2mat fonksiyonunun yardımına bakabilirsiniz

vitruvius

16 Nisan 2012, 01:11:03 #4 Son düzenlenme: 16 Nisan 2012, 01:23:38 vitruvius
Hocam sI kısmında hata alıyorum.

 I=eye(3)
=
     
1     0     0
     0     1     0
     0     0     1
>> (s*I)-A-(B*K)


Hata şu şekilde:

Error using InputOutputModel/plus (line 64)
Invalid operandVariables of type "sym" cannot be combined with other models.

Error in InputOutputModel/minus (line 451)
         
M1 + (-M2);


s'i matrisin  içine nasıl sokabilirim? Çünkü birim matrisin köşegenine elimle s koymaya çalıştığımda da garip bir formatta oluyor ve yine kullanamıyorum.
Transfer function from input 1 to output...
 
#1:  s
 
 #2:  0
 
 #3:  0
 
Transfer function from input 2 to output...
 
#1:  0
 
 #2:  s
 
 #3:  0
 
Transfer function from input 3 to output...
 
#1:  0
 
 #2:  0
 
 #3:  s

ferdem

16 Nisan 2012, 11:21:32 #5 Son düzenlenme: 16 Nisan 2012, 11:23:52 ferdem
Bilemiyorum vitruvius :)
OptimusPrime vektör matris dönüşümü için arkadaşın da yazdığı gibi reshape i kullanıyorum. Mesela 3 e 3 matrisi 1 e 9 satır vektörü yapmak için reshape(a,1,9) kullanıyorum, reshape(a,3,3) 1 e 9 vektörü 3 e 3 matris yapmak için de kullanılabilir. reshape önce sütunları alıp ipe diziyor sonra yeniden sıralıyor. Transpose ile düzenleme yapılabilir. Bir de matlab de sevdiğim fonksiyon repmat var. repmat ile bir vektörü alt alta veya yan yana koyarak boyutu arttırabiliyoruz.
Mesela a=[1 2 3] satır vektörünü repmat(a,3,2) ile
1 2 3 1 2 3
1 2 3 1 2 3
1 2 3 1 2 3
şeklinde bir matrise dönüştürmek mümkün. Kolay gelsin.

vitruvius

s'i tf olarak değil de sym('s') olarak tanımlayınca işlem yaptı, determinantını bile aldı =)

Konu çözüldü butonu kalktı mı?

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.