Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 27. 09. 2013 12:28

SoniCorr
Příspěvky: 608
Reputace:   
 

Matlab

Zdravím, lze převést kod z Wolfram Mathemtica do Matlabu? Díky

Offline

 

#2 27. 09. 2013 12:34 — Editoval Creatives (27. 09. 2013 12:35)

Creatives
Příspěvky: 610
Škola: UP MAT-EKO(09-12, Bc.)
Pozice: Student
Reputace:   26 
 

Re: Matlab

↑ SoniCorr:
Ahoj, zkus tohle

Offline

 

#3 27. 09. 2013 12:43

SoniCorr
Příspěvky: 608
Reputace:   
 

Re: Matlab

hele, já nevím jestli jsem retard, ale vubec mi to nefunguje. Nevím jak na to

Offline

 

#4 27. 09. 2013 12:50

SoniCorr
Příspěvky: 608
Reputace:   
 

Re: Matlab

Tohle bych potreboval do matlabu

A = {{6, 7, 1, 5, 1, 1, 1}, {2, 5, 0, 3, 0, 1, 1}, {6, 5, 1, 4, 1, 0,
    1}}; (*zadaná matice*)
b = {9, 5, 5}; (*zadaný vektor*)
m = Dimensions[A][[2]]; (*počet sloupců*)
n = Dimensions[A][[1]]; (*počet řádků*)
seznamBazi =
  Subsets[Range[
    m], {n}]; (*množina všech výběrů n prvků z množiny {1..m}, tj. \
všech bází B; permutace téže báze nejsou zahrnuty*)

VyberSloupce[mat_, baz_] :=
  Table[mat[[i, baz[[j]] ]], {i, n}, {j,
    n}]; (*vrátí matici Subscript[A, B] při dané bázi B*)

ZjistiPripustnost[x_] :=
  Catch[For[i = 1, i <= n, i++, If[x[[i]] < 0, Throw[False] ] ];
   Throw[True]]; (*pokud vektor obsahuje alespoň jeden záporný prvek, \
vrátí False, jinak vrátí True*)

PrevedNaReseni[x_, baz_] := (reseni = Table[0, {i, m}];
   Do[reseni[[ baz[[j]] ]] = x[[j]] , {j, n}];
   Return[reseni]); (*k danému Subscript[x, B]^B vrátí Subscript[x, \
B]*)

(*hlavní program*)
For[p = 1, p <= Binomial[m, n], p++, (*pro všechny báze*)
  mojeBaze = seznamBazi[[p]];
  mojeMatice = VyberSloupce[A, mojeBaze];
 
  Print["B=", mojeBaze]; (*vypiš uvažovanou bázi*)
  Print["\!\(\*SubscriptBox[\(A\), \(B\)]\)=",
   MatrixForm[mojeMatice]]; (*vypiš příslušnou Subscript[A, B]*)
 
  If[MatrixRank[mojeMatice] == n, invMat = Inverse[mojeMatice];
   Print["\!\(\*SuperscriptBox[SubscriptBox[\(A\), \(B\)], \
\(-1\)]\)=", MatrixForm[invMat]]; xB = invMat.b;
   Print["\!\(\*SuperscriptBox[SubscriptBox[\(x\), \(B\)], \(B\)]\)=",
     xB]; If[ZjistiPripustnost[xB],
    xReseni = PrevedNaReseni[xB, mojeBaze];
    Print["\!\(\*SubscriptBox[\(x\), \(B\)]\)=", xReseni],
    Print["\!\(\*SubscriptBox[\(X\), \(B\)]\) není přípustné \
řešení."]],
   Print["\!\(\*SubscriptBox[\(A\), \(B\)]\) je singulární."]];
  Print[]; (*pokud je Subscript[A, B] regulární, vytvoří se Subscript[
  A, B]^-1 a Subscript[x, B]^B a vypíší se;
  pokud je příslušné Subscript[x, B] přípustné, vypíše se;
  jinak se vypíše, která podmínka není splněna*)
  ];

Offline

 

#5 27. 09. 2013 13:33 — Editoval Creatives (27. 09. 2013 13:59)

Creatives
Příspěvky: 610
Škola: UP MAT-EKO(09-12, Bc.)
Pozice: Student
Reputace:   26 
 

Re: Matlab

↑ SoniCorr:
Musíš vložit package ToMatlab.m do složky kde to máš nainstalovaný Directory/Applications a potom příkazem ToMatlab[] vytvoříš matlabovský soubor...
jenom cituji co jsem vygooglil. Nemám s tím zkušenosti...

Offline

 

#6 27. 09. 2013 13:55

SoniCorr
Příspěvky: 608
Reputace:   
 

Re: Matlab

podarilo se mi to nejak spustit, ale problem je : Syntax::sntx: Invalid syntax in or before
    "MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Fri Sep 27
      13:40:47 2013                                                       
          ^" (line 1 of "ToMatlab.m"). nezbyva mi asi nic jinyho nez se matlab naucit.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson