Problema matlab mac (\bin \bash commad not found)

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

Avatar utente
Foto Utenteraddu
0 2
Messaggi: 7
Iscritto il: 27 giu 2009, 17:06
0
voti

[1] Problema matlab mac (\bin \bash commad not found)

Messaggioda Foto Utenteraddu » 1 giu 2014, 20:18

ciao a tutti,
vorrei porvi un problema che mi sta facendo diventare matto.
con un pico scope ho acquisito dei file da un milione di punti l'uno di durata di 1 secondo, e successivi, fino ad arrivare a 30 secondi. Per analizzare i dati ho bisogno di unire i file da 1.txt fino a 30.txt.
inizialmente caricavo i file singolarmente e li salvavo col seguente codice:(per semplicità ho creato dei file con la stessa struttura di quelli generati dal piko mantenendo 2 colonne e riducendo le righe a 5)
a=load('1.txt')
t=load('2.txt')
tot=[s;t]
save ('tot*')
questo metodo funziona senza problema alcuno, ma avendo più set di dati avrei voluto automatizzare il caricamento dei file e provai nel seguente modo

Codice: Seleziona tutto

aa=dir('*.txt') % file nella cartella
sizeaa=size(aa,1)
for j=1:size(aa,1)
     nome(j,:)=aa(j).name
     s=[load(nome(j,:),'*.txt')]
 end

ma nel ciclo for non riuscivo a salvare la variabile e mi sovrascriveva, dopo svariate ricerche so google mi hanno consigliato questo ciclo:

Codice: Seleziona tutto

x = char('copy 1.txt');
for i = 2 : 3
x = strcat(x, '+', '\n', '+', num2str(i), '.txt');
end
system(strcat(x, ' merge.txt'))

ma qui nasce un problema, non mi va proprio, non mi da i soliti errori in rosso ma carica il seguente messaggio:

Codice: Seleziona tutto

/bin/bash: copy: command not found

ans =

   127


cercando online si trovano delle informazioni ma onestamente non ci capisco niente, e quindi non riesco a correggere il codice.
se non ho capito male è un problema legato alla localizzazione dei file nel caricare la cartella
ho provato ad aggiornare matlab 2011a, x11 e tutto quello che potevo aggiornare ma niente, ho provato a installare nuovamente come tentativo disperato.
Se ci fosse un modo per raggiungere lo scopo con un altro comando ben venga, senno sapreste mica consigliarmi cosa provare a fare?!?

Avatar utente
Foto UtenteDanteCpp
4.730 3 9 13
Master EY
Master EY
Messaggi: 1106
Iscritto il: 15 dic 2011, 17:51
1
voti

[2] Re: Problema matlab mac (\bin \bash commad not found)

Messaggioda Foto UtenteDanteCpp » 1 giu 2014, 20:31

La shell ti sta semplicemente dicendo che il comando copy non esiste!
Non ho ben capito come lavora l'ultima soluzione che hai postato, comunque sia se il tuo obbiettivo è semplicemente unire più file in un unico, penso sia più pratico scrivere direttamente un piccolo script bash piutosto che lavorare su matlab!

Avatar utente
Foto UtenteDirtyDeeds
55,9k 7 11 13
G.Master EY
G.Master EY
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere
1
voti

[3] Re: Problema matlab mac (\bin \bash commad not found)

Messaggioda Foto UtenteDirtyDeeds » 1 giu 2014, 21:48

In Matlab, correggendo il tuo codice iniziale:

Codice: Seleziona tutto

flist = dir('*.txt');
merged_data = [];
for j = 1:size(flist,1)
  current_data = load(flist(j).name);
  merged_data = [merged_data; current_data];
end


Un'altra possibilità, migliore, è questa:

Codice: Seleziona tutto

flist = struct2cell(dir('*.txt'));
data = cellfun(@load,flist(1,:),'UniformOutput',false);
merged_data = cell2mat(data(:));
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.


Torna a “PC e informatica”