How to read values from 'Parameters' in a .ssc file?

12 visualizaciones (últimos 30 días)
Paola Martin
Paola Martin el 4 de Abr. de 2023
Comentada: Mathieu NOE el 11 de Abr. de 2023
I am making a code where I would like to read from a component called 'source.ssc', the values that are included in the parameters section. The structure of the *.ssc file kind of looks like this:
component liquid_source
nodes
%%
%%
end
annotations
%
end
parameters
p = {0.01, 'Pa'};
T = {30, 'C' };
end
variables
%
%
end
branches
%
%
end
equations
$$
end
end
My system is called filler and I have tried to call the parameters from the block with get_param('filler/source','DialogParameters') which shows me all the data, but I would like only those in the parameters section. I have read that you can use readSSCfile but my Matlab does not recognize it. I have version 2022b update 5 with simulink and simscape.
  2 comentarios
Stephen23
Stephen23 el 5 de Abr. de 2023
@Paola Martin: please upload a sample data file by clicking the paperclip button.
Paola Martin
Paola Martin el 7 de Abr. de 2023
i uploaded the file, thanks for the suggestion and sorry for the delay.

Iniciar sesión para comentar.

Respuesta aceptada

Mathieu NOE
Mathieu NOE el 5 de Abr. de 2023
hello
maybe this can help you
the output is a structure (size depends of number of variables in your ssc file
here we get :
>> out(1) =
struct with fields:
name: 'p'
value: 0.0100
units: 'Pa'
>> out(2) =
struct with fields:
name: 'T'
value: 30
units: 'C'
code :
D=readlines('source.ssc'); % read as string array
ixP1=find(contains(D,'parameters')); % find the start line
ixP2=find(contains(D,'end')); % find the stop line
ixP2=ixP2(ixP2>ixP1);
ixP2=ixP2(1);
lines = ixP1+1:ixP2-1; % number lines
for ck=1:numel(lines)
tmp = D(lines(ck));
out(ck).name = char(strtrim(extractBefore(tmp,'=')));
out(ck).value = str2double(extractBetween(tmp,'{',','));
out(ck).units = char(strtrim(extractBetween(tmp,'''','''')));
end
  3 comentarios
Paola Martin
Paola Martin el 7 de Abr. de 2023
It worked, thanks. What I didn't notice is that the file has two 'parameters' sections. Also is it possible to read the comments in the file or should I open another section to ask?
Mathieu NOE
Mathieu NOE el 11 de Abr. de 2023
hello
I can work on this without any extra charge :)
but maybe the file structure I used in the previous code is missing that second parameter section and also the comments section
how should the new *.ssc file look like then ?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Foundation and Custom Domains en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by