8 / 4 / 0
Регистрация: 18.05.2012
Сообщений: 214
1

Расхождение результатов в GUI

04.06.2013, 09:01. Показов 892. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Проблема в следующем, при создании проги в GUI тот же самый код при обычном компилировании выдает разные результаты ?
код
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function btn_Callback(hObject, eventdata, handles)
% hObject    handle to btn (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
m=str2num(get(handles.edit1,'String'));
m0=str2num(get(handles.edit2,'String'));
I=str2num(get(handles.edit3,'String'));
R=str2num(get(handles.edit4,'String'));
z=str2num(get(handles.edit5,'String'));
N=str2num(get(handles.edit6,'String'));
B = ((m*m0*I*R^2)./(2*((R^2+z.^2).^1.5)))*N; % вычисление магнитной индукции
deltaz = 0.1;
ind_z = find (z == deltaz) - 1 % находим номер элемента массива
i =1;
while i <= length(B) - ind_z % объявляем предел массива В
    x(i)=-( B(i + ind_z) - B(i) )./deltaz; % вычисляем гардиент магнитного поля
    y(i) = z(i);
    i = i + 1;
end
plot(y,x) % выводим график
xlabel('z, м'); % именуем ось абсцисс 
ylabel('dB/dz, Тл/м'); % именуем ось ординат 
grid on % выводим сетку
axis % масштабируем оси графика
Результаты:
Расхождение результатов в GUI

Расхождение результатов в GUI
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2013, 09:01
Ответы с готовыми решениями:

Matlab GUI создать вывод результатов в таблицу
Доброго времени суток, помогите пожалуйста разобраться. Имеется программа реализующая симплекс...

обратная матрица mathcad excel расхождение результатов
Привет имеется матрица X 6x6 элементов, заполнена большими числами (~2E10). Вычисляю обратную...

Alienware 17. Видеопамять — расхождение результатов теста целостности видеопамяти
Проконсультируйте, пожалуйста. Сам ноутбуки не ремонтирую. Знания поверхностные. Как я понимаю,...

Как запустить qt gui программу, как демон, без gui, скрыв gui?
Как запустить qt gui программу, как демон, без gui, скрыв gui? В gui браузер выполняет...

6
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
04.06.2013, 11:29 2
Оба графика выводятся этой функцией?
1
8 / 4 / 0
Регистрация: 18.05.2012
Сообщений: 214
04.06.2013, 11:36  [ТС] 3
Да, отличия только в способе ввода значений переменных, в GUI через еdit'ы, а в m-файле находятся в коде
Код m-файла
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
m = 5*10^3; % магнитная проницаемость материала сердечника 
m0 =4*pi*10^(-7); % коэффициент магнитной проницаемости
I = 1.5; % сила тока
R = 0.15;% радиус соленоида
z = 0:0.01:0.7 % диапазон значений по оси z
N=200; %количество витков
B = ((m*m0*I*R^2)./(2*((R^2+z.^2).^1.5)))*N; % вычисление магнитной индукции
deltaz = 0.1;
ind_z = find (z == deltaz) - 1 % находим номер элемента массива
i =1;
while i <= length(B) - ind_z % объявляем предел массива В
    x(i)=-( B(i + ind_z) - B(i) )./deltaz; % вычисляем гардиент магнитного поля
    y(i) = z(i);
    i = i + 1;
end
plot(y,x) % выводим график
xlabel('z, м'); % именуем ось абсцисс 
ylabel('dB/dz, Тл/м'); % именуем ось ординат 
grid on % выводим сетку
axis % масштабируем оси графика    
B
x
0
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
04.06.2013, 11:42 4
Значит есть отличия в переменных. Поставьте точки отладки в btn_Callback и в m-файле. И сравните переменные.
1
8 / 4 / 0
Регистрация: 18.05.2012
Сообщений: 214
04.06.2013, 12:16  [ТС] 5
Никогда не ставил точки отладки ? подскажите пожалуйста как это сделать

Добавлено через 17 минут
Сделал как вы сказали, но почему-то получились разные значения.
Сравнил с вводимыми значениями и понял что при вводе через edit допустим знач перме I =1.5 он в workspace пишет 0.15 и вот сомнения появились при вводе знач.z -0:0.01:0.7 получается 1x71 double
0
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
04.06.2013, 14:14 6
Цитата Сообщение от ins813 Посмотреть сообщение
и вот сомнения появились при вводе знач.z -0:0.01:0.7 получается 1x71 double
правильно пишет.

Цитата Сообщение от ins813 Посмотреть сообщение
при вводе через edit допустим знач перме I =1.5 он в workspace пишет 0.15
Наверно перепутали поля ввода R c I. Конечно если оно всё подписано edit1, edit2. Поди догадайся где что. (Для того чтобы подписи элементов были понятными изменяют свойство Tag объектов интерфейса)
1
8 / 4 / 0
Регистрация: 18.05.2012
Сообщений: 214
04.06.2013, 16:10  [ТС] 7
Цитата Сообщение от tvoretsmira Посмотреть сообщение
Наверно перепутали поля ввода R c I. Конечно если оно всё подписано edit1, edit2. Поди догадайся где что. (Для того чтобы подписи элементов были понятными изменяют свойство Tag объектов интерфейса)
Да, вы были абсолютно правы, спасибо большое!
0
04.06.2013, 16:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2013, 16:10
Помогаю со студенческими работами здесь

Расхождение с версиями 8.2 и 8.3
На платформе 1С 8.2 (Документооборот) код работал исправно, как обновили платформу до 1С...

Откуда расхождение в графиках
Нужно построить графики для функции и ее разложения Функция:...

Расхождение шаблона в Chrome
http://ma-excel.ru/ Во всех браузерах - нормальное отображение. Но в хроме расплывается...

Расхождение многомерных массивов
Есть два многомерных массива: $arr1 = array ( 0 =&gt; array ('title' =&gt; 'Автослесарь'), 1 =&gt;...

Исправить расхождение веток
После череды многократных изменений существующих коммитов с применением git rebase -i возникла...

Большое расхождение с учебной литературой
Добрый день. Изучаю Thread и все что с ними связано. В мануалах по приоритетам потоков есть пример...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru