that code does not work well and every time give the same number 5 times every time and not indexd to be used in an another place thank you
조회 수: 2 (최근 30일)
이전 댓글 표시
no=5;
x=zeros(no,1);
for i=1:no
waitfor(app.refindexEditField,'value');
x(i)=app.refindexEditField.Value;
end
app.refindexEditField.Value=inf;
fprintf(' %.1f \n ',x)
plot(app.UIAxes,(1:no)',x(1:i),'-r')
댓글 수: 2
Walter Roberson
2025년 1월 10일
You have a different problem: your code does not permit entering the same value twice in a row. The value property is not considered to have changed if it is set to the same thing as at was before. You would need something like
app.refindexEditField.Value=inf;
before the waitfor()
채택된 답변
Umar
2025년 1월 10일
Hi @m.montaser sabry,
The problem arises from the way the code is structured, particularly with the waitfor function. This function halts execution until the specified condition is met, which may lead to repeated values if the input field is not updated correctly. To resolve this, consider using a callback function that triggers when the value in app.refindexEditField changes. Here’s a revised approach:
no = 5;
x = zeros(no, 1);
for i = 1:no
% Wait for user input
app.refindexEditField.Value = input('Enter a value: '); % Prompt for input
x(i) = app.refindexEditField.Value; % Store the input value
end
app.refindexEditField.Value = inf; % Reset the input field
fprintf(' %.1f \n ', x);
plot(app.UIAxes, (1:no)', x, '-r');

In this version, the user is prompted to enter a value directly in the command window, ensuring that each input is unique. This method allows for better control over the input process and prevents the same value from being recorded multiple times.
댓글 수: 6
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!