Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Logisk matrix udfordring.

Af Bruger Lubas | 05-08-2017 00:15 | 1799 visninger | 1 svar, hop til seneste
Hej alle Jeg har en n x n logisk matrix (0 eller 1 i alle indgange), hvor alle rækker og søjler har mindst én indgang med værdien 1. Findes der en funktion (jeg taler matlab’sk).. eller kan nogle komme med hints til hvordan jeg selv kan skrive et script? Opgaven er at udvælge n indgange hvor værdien er 1 og ændre denne værdi til 2 sådan at alle rækker og søjler er ’udvalgt’. Dvs. i første række skal en indgang med værdien 1 ændres til 2 – dette gøres også i anden række, men det må ikke være i samme søjle som den udvalgte indgang i række 1 – osv. med de andre rækker. Matricen er konstrueret på en sådan måde at dette ALTID kan lade sig gøre. Der er muligvis flere løsninger, men jeg skal blot bruge en enkelt. Fx har identitetsmatricen kun een løsning mens en all-ones matrix har n! løsninger.
--
#1
Dare_Devil
Supporter
05-08-2017 12:36

Rapporter til Admin
Hvad skal det bruges til? Jeg kan ikke lige genkende "problemet", men hvis det er et "kendt" problem (et som ofte skal løses i en eller anden sammenhæng), så er der nok en indbygget funktion til det. Alternativt kan du vel selv bare skrive en funktion. Hvis det ikke behøver at være hurtigt, kunne det se sådan her ud: function X = do_magic(X) nrows = length(X); prev_idx = -1; for i = 1:nrows % find indices of non-zeo entries of the i-th row non_zero_idxs = find(X(i,:)); % pick the first non-zero entry idx = non_zero_idxs(1); % if it's the same as last time, take the next one if idx == prev_idx idx = non_zero_idxs(2); end # update prev_idx and X prev_idx = idx; X(i, idx) = 2; end end
--

Opret svar til indlægget: Logisk matrix udfordring.

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning