 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
PZUFIC Vseved


Pridružen-a: Sob 17 Nov 2007 19:06 Prispevkov: 6987 Aktiv.: 32.62 Kraj: Rakek
|
Objavljeno: Čet Dec 26, 2013 12:41 am Naslov sporočila: Kopiranje iz matrike v matriko-Matlab |
|
|
Problem je sledeč. Imam neko matriko, ki ima število stolpcev vedno enako 8 število vrstic pa ja odvisno od podatka. Rad bi iz te matrike v novo matriko prekopiral vsako 7 vrstico. Preverjanje vsake sedme vrstice ni težava, pač gledam ostanek deljenje s 7. Najprej sem hotel operirati na kopiji originalne matrike in ven brisati nepotrebne vrstice. To je stvar zakompliciralo do te mere, da je bila zame neizvedljiva, saj se vrstice v matriki po brisanju "pomikajo" navzgor.
Sedaj sem se odločil, da bo verjetno bolje kopirati potrebne vrstice v novo matriko.
Zanima me kako v eni vrstici lahko skopiram n-to vrstico prve matrike v k-to vrstico druge, namreč tega nikakor ne ugotovim, da bi delovalo pravilno, pa sem skoraj 100% prepričan, da je mogoče?
Vnaprej hvala za vse odgovore in nasvete. _________________ Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož |
|
Nazaj na vrh |
|
 |
nakamichi Član

Pridružen-a: Pon 21 Avg 2006 18:51 Prispevkov: 845 Aktiv.: 3.68 Kraj: Nova Gorica
|
Objavljeno: Čet Dec 26, 2013 12:23 pm Naslov sporočila: |
|
|
Sicer tukaj nimam Matlaba je pa odvisno ali podatke obdeluješ online ali offline?
Za offline uporabi for zanko:
Koda: |
n=1;
for i=1:7:lenght(ArrayName)
DrugiArray(n,:)=ArrayName(i,:);
n=n+1;
end |
Kaj praviš na nekaj takega?
Za velikost matrike lahko uporabiš tudi "size" ukaz in se odločiš po kateri dimenziji greš.
L.P.,
Miha |
|
Nazaj na vrh |
|
 |
Vinkel Član


Pridružen-a: Čet 15 Maj 2008 16:55 Prispevkov: 237 Aktiv.: 1.14 Kraj: Ljubljana
|
Objavljeno: Čet Dec 26, 2013 4:50 pm Naslov sporočila: |
|
|
Če sem prav razumel bi rad sledeče:
Koda: |
A=rand(100,4);
B=A(1:7:end,:);
|
Edit: Typo. |
|
Nazaj na vrh |
|
 |
PZUFIC Vseved


Pridružen-a: Sob 17 Nov 2007 19:06 Prispevkov: 6987 Aktiv.: 32.62 Kraj: Rakek
|
Objavljeno: Čet Dec 26, 2013 5:04 pm Naslov sporočila: |
|
|
Najprej najlepša hvala. Zadevo sem medtem izpeljal s for zanko za katero sem mislil, da mi bo krepko zakomplicirala zadeve pa mi jih na srečo ni.
Koda: |
[visina,dolzina]=size(golipodatek8);
stevec1=0;
visina1=visina-((visina/7)*6);
besedilobin=zeros([visina1,8])
stevec2=0;
i=0;
for stevec1=1:visina
if mod(stevec1,7) == 0
stevec2=stevec2+1
for i=1:8
besedilobin(stevec2,i)=golipodatek8(stevec1,i);
end
end
end
|
_________________ Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož |
|
Nazaj na vrh |
|
 |
faznprifer Član


Pridružen-a: Ned 14 Okt 2012 9:36 Prispevkov: 175 Aktiv.: 1.13 Kraj: Celje
|
Objavljeno: Tor Maj 13, 2014 1:28 pm Naslov sporočila: |
|
|
Ker vidim da ste tukaj kar strokovnjaki za matlab, imam jaz vprašanje kako bi sestavil program, da bi mi prestavil tromestno naravno število za eno v desno. tako, da bi iz števila 123 dobil število 312, iz števila 230 pa 023 oz. 23.
Sem čisti začetnik matlab programa zato me stvar muči ker niti nevem kako začeti.
hvala! |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.61 Kraj: Trzic
|
Objavljeno: Tor Maj 13, 2014 2:46 pm Naslov sporočila: |
|
|
Ena varianta...
a = 123
b = floor(a/10) + mod(a,10)*100 _________________ Lp,
Matevž |
|
Nazaj na vrh |
|
 |
faznprifer Član


Pridružen-a: Ned 14 Okt 2012 9:36 Prispevkov: 175 Aktiv.: 1.13 Kraj: Celje
|
Objavljeno: Tor Maj 13, 2014 3:43 pm Naslov sporočila: |
|
|
super, najlepša hvala  |
|
Nazaj na vrh |
|
 |
faznprifer Član


Pridružen-a: Ned 14 Okt 2012 9:36 Prispevkov: 175 Aktiv.: 1.13 Kraj: Celje
|
Objavljeno: Pet Jun 06, 2014 9:44 pm Naslov sporočila: |
|
|
Imam še eno težavo, kako narediti da mi program izpiše števila med dvema številoma ki sta zgornja in spodnja meja.
npr. izpis števil med številoma 4 in 8. nato mi jih izpiše po vrsti 5 6 7 |
|
Nazaj na vrh |
|
 |
PZUFIC Vseved


Pridružen-a: Sob 17 Nov 2007 19:06 Prispevkov: 6987 Aktiv.: 32.62 Kraj: Rakek
|
Objavljeno: Pet Jun 06, 2014 11:38 pm Naslov sporočila: |
|
|
Recimo takole:
Koda: |
clear all
close all
spodaj=4;
zgoraj=8;
k=1;
for i=spodaj+1:1:zgoraj-1
S(k)=i;
k=k+1;
end
S
|
_________________ Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož |
|
Nazaj na vrh |
|
 |
faznprifer Član


Pridružen-a: Ned 14 Okt 2012 9:36 Prispevkov: 175 Aktiv.: 1.13 Kraj: Celje
|
Objavljeno: Sob Jun 07, 2014 10:05 am Naslov sporočila: |
|
|
Hvala točno to potrebujem. |
|
Nazaj na vrh |
|
 |
matija5ka Član

Pridružen-a: Sre 18 Jan 2006 0:06 Prispevkov: 14 Aktiv.: 0.06 Kraj: Ljubljana/Bled
|
Objavljeno: Sob Jun 07, 2014 12:49 pm Naslov sporočila: |
|
|
Če potrebuješ samo izpis, bi šlo tudi:
Koda: |
spodaj=4;
zgoraj=8;
(spodaj:zgoraj-1)' %brez podpicja, ' je za vertikalen vektor
|
|
|
Nazaj na vrh |
|
 |
PZUFIC Vseved


Pridružen-a: Sob 17 Nov 2007 19:06 Prispevkov: 6987 Aktiv.: 32.62 Kraj: Rakek
|
Objavljeno: Sob Jun 07, 2014 5:16 pm Naslov sporočila: |
|
|
Ni problema, ti kar vprašaj če bo še kaj. Verjetno sicer obstaja tudi kaka bolj elegantna rešitev, ampak preden mi jo uspe najti že deluje po kmečko.  _________________ Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 498 dni
Powered by phpBB © 2001, 2005 phpBB Group
|