[英]Matlab gui with pause function
我正在使用matlab gui的GUIDE。 gui的構建是為了通過GPIB與吉時利電流測量設備進行通信。 當使用切換按鈕進行while循環電流測量時,我在while循環內使用一次pause()函數進行每次迭代,並在y數組上讀取結果的ytranspose 。
function Measure_Callback(hObject, eventdata, handles)
global GPIB1
global filename
global timeStep
disp('Measurement in progress \n stopwatch starts!');
tic
x=0;
n=0;
while get(hObject,'Value')
fprintf(GPIB1, 'printnumber(smua.measure.i(smua.nvbuffer1))');
fprintf(GPIB1, 'printbuffer(1,1,nvbuffer1)');
A = fscanf(GPIB1);
if length(A)<20
x = x+1;
n = n+1;
t(n) = toc ;
y(x) = str2double(A);
plot(t,y,'-bo',...
'LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[.49 1 .63],...
'MarkerSize',10);
grid on
hold on
end
title('Current vs Time','FontSize', 15)
xlabel('Time [s]','FontSize', 15)
ylabel('Current [A]','FontSize', 15)
a = timeStep;
pause(a)
end
disp('Measurement terminated');
disp('Elapsed time: ');
elapsedtime = toc;
elapsedtime_string = num2str(elapsedtime);
disp(elapsedtime_string);
ytrans = transpose(y);
csvwrite(filename,ytrans);
fprintf(GPIB1, 'smua.source.output = smua.OUTPUT_OFF');
對於暫停功能,我遇到錯誤: ?? 使用==> pause時出錯評估uicontrol回調時出錯
對於transpose(y)函數,我也遇到一個錯誤: 其未定義的y。
不能理解這些錯誤的原因,可以尋求幫助。 謝謝!
就像人們所說的那樣,首先發布錯誤和代碼。 您是否知道第一次運行循環時length(A)是否小於20? 因為如果沒有,則A未定義,因此您無法轉置不存在的內容。 在循環之前初始化A,以查看錯誤是否仍然存在(或打印出length(A)以確保循環在第一次運行時進入)。
至於暫停錯誤,請確保暫停是一個整數或雙精度數,而不是字符串。 如果從GUI字段獲取全局timeStep,則它可能是字符串,並且需要隱秘使其首先加倍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.