Załóżmy, że posiada matrycę a = [1 2 3 4 5 6];
, w jaki sposób zmiany kształtu go w wierszami sposób, na przykład reshape(a, 2, 3)
otrzymującReshape MATLAB wektora w sposób w rzędach
1 2 3
4 5 6
niż domyślny wyniku Kolumnowa wyprodukowany przez MATLAB z:
1 3 5
2 4 6
Wierzę, że jest to banalne zadanie, które prawdopodobnie ma wbudowaną funkcję, aby to osiągnąć. Mam już zaimplementowaną funkcję, która robi to doskonale ... jednak czy istnieje krótszy, lepszy i bardziej MATLAB sposób? Dzięki.
function y = reshape2(x, m, n)
y = zeros(m, n);
ix = 0;
for i = 1:m
for j = 1:n
ix = ix + 1;
y(i, j) = x(ix);
end
end
end
Cheers za usunięciem zapytanie właśnie teraz - ja właśnie spędziliśmy 10 minut przygotowuje odpowiedź . Mogłem być przydatny dla kogoś innego. (Myślałem, że to dobre pytanie). –
Och, ponownie opublikuję pytanie, a następnie @MatthewTaylor – Mortada