Why I can't save my data in a .mat when using WebAppServer?

My application is used to take a test to several people.
At each instance, Scores.mat is opened. It contains the structure Scores which stores the scores of the previous participants. The number of participants is retrieved. The new participant takes the test and the new scores are added to the strucure Scores. At the end of the test, the structure Scores is saved in Scores.mat, and so on.
% Load the scores table
load Scores.mat
app.Scores = Scores;
% Increment the participant index
app.idxParticipant = length(app.Scores) + 1;
% (...)
% Save scores (code has been modified for better clarity)
app.Scores(app.idxParticipant).Model(1) = app.EditField.Value;
app.Scores(app.idxParticipant).Model(2) = app.EditField_2.Value;
app.Scores(app.idxParticipant).Model(3) = app.EditField_3.Value;
% (...)
% Save listener scores
Scores = app.Scores;
save('Scores.mat','Scores')
Locally, everything runs well, of course. But when I test the Matlab WebApp, the very last step doesn't work: the structure Scores is not saved in Scores.mat and there is no errors in the logs.
Scores.mat is well embedded in the WebApp as I am able to open it and retrieve the Scores structure. The structure is well updated, I've checked it, but I am not able to save the updated structure back into Scores.mat.
I hope someone could help me here. Many thanks!

답변 (1개)

Taylor
Taylor 2024년 8월 6일

0 개 추천

I believe you need to specify the local path to which you are saving. You can do this with save, or you might want to check out uiputfile. That function will prompt the user with a standard "save file" dialog.

댓글 수: 3

Julie SERIS
Julie SERIS 2024년 8월 6일
편집: Julie SERIS 2024년 8월 6일
Thank you Taylor for your answer, but if I have understood you correctly, I don't think this is what I want to achieve.
I don't want the user to save the file somewhere, I want to update the file I have nested into the Web App:
Somehow, the webAppServer is able to open it, so it knows where it is, but it is not able to save it again.
Do you know how I could get the path of this file once it is embedded in the WebApp? Unless this is not a file anymore, once it is encapsulated?
Apologies, I did misinterpret your question. fileparts(which("Scores.mat")) will give you the location of where "Scores.mat" is located.
Thank you Taylor for your proposal. Locally, it works fine and I have the good path using the code you gave me. But once deployed, it returns a empty char array:

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

제품

릴리스

R2023b

태그

질문:

2024년 8월 6일

댓글:

2024년 8월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by