OK.
Mi sembra che l'impostazione generale sia sostanzialmente corretta.
La funzione "textread" è sconsigliata da MatLab (vedi help textread), in alternatica potresti usare "textscan".
Per scrivere in un file di testo con la funzione "fprintf" devi prima "aprire" (creare) il file con la funzione "fopen", al termine devi "chiudere" il file con la funzione "fclose".
Per ognuna delle operazioni che devi eseguire nelle varie funzioni ci sono diverse possibilità.
Potresti creare lo script generale così:
%
% Primo modo per l'acquisizione del nome del file di input
% ==> utilizzo della funzione "input"
% go_on=0;
% while(~go_on)
% input_file=input('Insert input file name: ','s')
% if(isempty(input_file))
% disp('Input file name can not be an empty string')
% elseif(~exist(input_file))
% disp([input_file ': file not found'])
% else
% go_on=1;
% end
% end
%
% Secondo modo per l'acquisizione del nome del file di input
% ==> utilizzo della funzione "uigetfile"
go_on=0;
while(~go_on)
[input_file, pathname]=uigetfile('*.txt', 'Pick a Temperature file');
if(input_file)
go_on=1;
end
end
%
[temp_mat]=Leggi_File(input_file)
[medie_temp]=Temp_Media(temp_mat)
Scrivi_File(medie_temp)
Grafica_Temperature(medie_temp)
Per le singole funzioni (ognuna di esse da salvare in un file separato con nome uguale al nome della funzione)
Leggi_File.m
function [temp_mat]=Leggi_File(input_file)
% Primo modo per leggere il file in input
temp_mat=load(input_file)
% Secondo modo per leggere il file in input
fp=fopen(input_file)
temp_mat=cell2mat(textscan(fp,'%f%f%f%f%f%f%f'))
fclose(fp)
% Terso modo per leggere il file in input
temp_mat=importdata(input_file)
Temp_Media
function [medie_temp]=Temp_Media(temp_mat)
% Primo modo per calcolare le temperature medie
medie_temp=mean(temp_mat,2)
% Secondo modo per calcolare le temperature medie
[n_row,n_col]=size(temp_mat)
medie_temp=zeros(n_row,1)
for i=1:n_row
s=0;
for j=1:n_col
s=s+temp_mat(i,j);
end
medie_temp(i)=s/n_col;
end
Scrivi_File
function Scrivi_File(medie_temp)
% Primo modo per srivere le temperature medie
save('Temperature_Medie.txt','medie_temp','-ascii')
% Secondo modo per scrivere le temperature medie
fp=fopen('Temperature_Medie.txt','wt')
fprintf(fp,'%f\n',medie_temp)
fclose(fp)
Grafica_Temperature
function Grafica_Temperature(medie_temp)
bar(medie_temp)
title('Media Temperature')
xlabel('Settimana')
ylabel('Temperature [C°]')