Buongiorno a tutti,
volevo ringraziarvi a priori per il supporto che mi date, considerando che spesso trovo le risposte alle mie domande solo scorrendo i vari post nel forum.
Vi spiego dove ho bisogno di una mano:
Sto scrivendo un codice per la elaborazione di dati di pneumatici, tramite una serie di formule specifiche.
i dati che uso da rielaborare si trovano spesso in un file con estensione .TIR, e sono l'output di un noto programma di simulazione per veicoli (MSC Adams), questo file può tranquillamente essere aperto con excel per essere visionato.
Veniamo al dunque, riesco a importare tranquillamente il file in matlab come cell, il problema sorge quando cerco di creare delle struct con queste cell in quanto alcune variabili vengono salvate con carattere inziale " e non capisco il perchè dato che nel file TIR il carattere non è presente.
c'è il modo di scorrere tutto il cell array in cerca di un carattere e rimpiazzarlo?
vi ringrazio anticipatamente per la disponibilità e l'aiuto.
qui sotto copia del codice che uso per le operazioni sopra descritte:
%LOADTIR Load a user specified TIR file into a structure.
%
% Syntax: [CurrentTyre] = loadTIR(FileNameLocation)
% where FileNameLocation is a string including full path and name
fileID = fopen(FileNameLocation,'r'); % Open file filename for reading ('r')
counter = 0;
LineNumber = 0;
%While not at end of file
while feof(fileID) == 0
currentLine = fgetl(fileID);
LineNumber = LineNumber + 1;
if ~isempty(currentLine)
%If current line is not a title, comment or description
if (currentLine(1) ~= '[' && currentLine(1) ~= '$' && currentLine(1) ~= '!')
%Append parameter counter
counter = counter + 1;
%Find location of = and $ in each row
index1 = strfind(currentLine, '=') + 1;
index2 = strfind(currentLine, '$') - 1;
%Parameter Name
value = currentLine(1:index1-2);
MFParamName{counter,1} = strtrim(value);
%Parameter Value
if (isempty(index2) == 1)
value = currentLine(index1:end);
MFParamValue{counter,1} = strtrim(value);
else
value = currentLine(index1:index2);
MFParamValue{counter,1} = strtrim(value);
end
%Parameter Description
value = currentLine(index2+1:end);
MFParamDescription{counter,1} = strtrim(value);
end
end
end
fclose(fileID);
for ii = 1:length(MFParamName)
if cellfun(@length,MFParamName(ii)) > 1
if any(isstrprop(MFParamValue{ii},'digit')) > 0
originalTyre.(MFParamName{ii}) = str2double(MFParamValue{ii});
else
originalTyre.(MFParamName{ii}) = MFParamValue{ii};
end
end
end
qui di seguito link a cui scaricare un file .TIR per provare il codice
https://www.dropbox.com/s/qjklwligoand2n8/20-54_13_S412_1b5.TIR?dl=0