Wpis z mikrobloga

Pytanie do matlabowiczów;). Otóż mam dane zapisane funkcją "struct" w której jest 6 plików z macierzami 8x1000. Teraz chciałbym wyciągnąć z każdej tej macierzy siódmy wiersz i zapisać je w jednym pliku. Jak to zrobić?

#matlab #programowanie
  • 6
@m1ck: musisz to zrobić tylko raz, czy automat?
Sam bym wziął
wynik=zeros(6,1000);
temp=cell2mat(struktura.tablica1);
wynik(1,:)=temp(7,:);
temp=cell2mat(struktura.tablica2);
wynik(2,:)=temp(7,:);

itd.

Dobrze zrozumiałem?
@kamilspl: co za brzydki kod…będę rzigoł
@m1ck: ja bym to tak uderzał, ale nie mam matlaba to nie sprawdzę czy działa, pisałem w notatniku

dataStruct = uigetfile;
% wybierz plik do załadowania
result = zeros(6,1000);
dataNames = fieldnames(dataStruct);
for i = 1:length(dataNames)
result{i,1} = dataStruct.dataNames{i}(7,:)
end %for
@motoinzyniere: To pa tera na załącznik ( ͡° ͜ʖ ͡°)

A tak poważnie - na co dzień piszę w Octave - nieznacznie różni się od Matlaba.
Np z tego co pamiętam Matlab nie łyknie czegoś w stylu magic(3)(2,1), nie wiedziałem, że można zrobić
dataStruct.dataNames{i}(7,:) aby wywołać coś z cella.
Tak samo nie znałem fieldnames - zamiast tego pisałem "subskrypty" z wykorzystaniem polecenia eval() (to dopiero jest zło).
Pobierz kamilspl - @motoinzyniere: To pa tera na załącznik ( ͡° ͜ʖ ͡°)

A tak poważnie - na...
źródło: comment_1654201066IeyM1RheMsbozZMpCbvoIm.jpg
@kamilspl: Ja na codzień pisze obiektowo w matlabie, i to ładnie wyglada, jak widzę normalne skrypty to mnie nosi (,) i ogólnie różnie rzeczy napisane przez ludzi, którzy nie bardzo chcą optymalizować kod. Np widziałem funkcje która miała 300 linii, tylko dlatego ze zapisywała wektor do pliku CSV. Linia po linii, nie w pętli. (°°