Hi,
I am creating a GUI and need to use data from m.file. It's working for the first file, but not or the second. Both are (double). Any idea?
matrice_losses.mat is load, but not MM...
Regards

댓글 수: 5

Adam
Adam 2020년 1월 23일
What happens? Nothing? An error? Incorrect results? If you get an error please post the error message.
Sorry I forget it
Error using load
Attempt to add "mm" to a static workspace.
See Variables in Nested and Anonymous Functions.
Error in GUI_Code/PushB (line XX)
load MM;
Error while evaluating UIControl Callback.
mm is the name on the variable wich should be used
Adam
Adam 2020년 1월 24일
Given that error I'm surprised the first matfile loads. A nested function does give you this static workspace that you can't add variables to, as far as I am aware (certainly when I put breakpoints in these files and try to create variables on command line I can't). If you don't use nested functions that particular error would go away, but again, I don't really understand how it doesn't also give that error for your first file, without running the code.
Jakob B. Nielsen
Jakob B. Nielsen 2020년 1월 24일
It is possible that you can load matrice_losses because you subsequently "do something" to it, either inside your function or elsewhere in the code. That means it is a nested variable within your GUI workspace (I dont know the correct terms, sorry ;)
MM, however, is just loaded and done nothing with. Try initializing MM outside the function, or calling it from another function in the GUI.
I'm just spitballing here. If one thing can load, another should be able to, and this is the only difference I can see out of what you posted.
Bad code practices strike again!
You can easily avoid this error by loading into an output variable (which you should be doing anyway), e.g.:
S = load('matrice_losses.mat');
lamfit = S.matrice_losses(:,1).*1e-3;
lossdB = S.matrice_losses(:,2);

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

 채택된 답변

Jose Jeremias Caballero
Jose Jeremias Caballero 2020년 1월 24일
편집: Jose Jeremias Caballero 2020년 1월 24일

0 개 추천

function PushB(hObject,eventdata,handles)
load matrice_losses
lamfit=(matrice_losses(:,1).*1e-3)
lossdB =matrice_losses(:,2);
u=load('MM.mat')
mm=u.mm
end

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2020년 1월 23일

댓글:

2020년 1월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by