Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
script
clc % очистка окна Command Window
clear % очистка Workspace
close all % закрытие всех графических окон
x1 = randn(1,10000); % нормальный белый шум длины 10000
x2 = rand(1,10000); % равномерный белый шум длины 10000
% гистограмма нормального белого шума
subplot(2,1,1), hist(x1), grid
title('Histogram – Gaussian White Noise')
% гистограмма равномерного белого шума
subplot(2,1,2), hist(x2), grid
3
2000
1000
0
-5 -4 -3 -2 -1 0 1 2 3 4
1000
500
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
MeanG =
-0.0013
VarG =
0.9895
MeanU =
0.4963
VarU =
0.0813
На рис. 2 представлено содержимое Workspace по завершении вычислений. В данном
случае выбраны одинаковые имена формальных и фактических выходных
параметров, которые сохранились в Workspace, при этом формальные входные
параметры M и N отсутствуют.
script
clc % очистка окна Command Window
clear % очистка Workspace
close all % закрытие всех графических окон
x1 = randn(1,10000); % нормальный белый шум длины 10000
x2 = rand(1,10000); % равномерный белый шум длины 10000
% гистограмма нормального белого шума
subplot(2,1,1), hist(x1), grid
title('Histogram – Gaussian White Noise')
% гистограмма равномерного белого шума
subplot(2,1,2), hist(x2), grid
title('Histogram – Uniform White Noise')
[MeanG,VarG,MeanU,VarU] = demoF1(1,10000)
VarG =
1.0037
MeanU =
0.5024
VarU =
0.0841
4.5. Ввод/вывод данных
Под вводом данных подразумевают присваивание значений переменным.
В режиме программирования это может выполняться как обычно с помощью
оператора присваивания или вручную с клавиатуры с помощью функции:
<имя переменной> = input('<текст>');
где <текст> – пояснение о вводимых данных; точка с запятой блокирует их
автоматический вывод в командную строку.
Функция input приостанавливает выполнение программы и выводит <текст> в
окно Command Window. Пользователь вводит значение переменной и нажимает
<Enter>, после чего продолжается выполнение программы.
Например, если в программе есть строка
а = input(' Введите а = ');
то в окно Command Window будет выведено:
>> Введите а =
С клавиатуры следует ввести значение а и нажать <Enter>:
>> Введите а = 123
Вывод данных в окно Command Window выполняется автоматически, если они не
блокируется точкой с запятой.
Для компактного вывода (в одной строке) имен переменных (одного или нескольких)
одновременно с их значениями удобно воспользоваться функцией:
disp(['<имя переменной 1>' num2str(<имя переменной 1>) ...])
где:
− имена переменных в апострофах и функции num2str вводятся в квадратных
скобках через пробел, подобно элементам численного вектора;
− функция num2str преобразует значение переменной числового типа в
переменную символьного типа (Лекция 3);
− во избежание вывода слитного текста, пользователь должен предусмотреть
пробелы при имени переменной в апострофах.
Примеры вывода значений переменных
>> N = 5; Fs = 1000;
без пробелов:
>> disp(['N =' num2str(N) 'Fs =' num2str(Fs)])
8
N =5Fs =1000
и с пробелами:
>> disp([' N = ' num2str(N) ' Fs = ' num2str(Fs)])
N = 5 Fs = 1000
Если в процессе выполнения программы требуется вывести в окно Command
Window поясняющий комментарий о выполняемом действии, используемых
переменных, полученных результатах и проч., то для этого используют функцию
disp следующего формата:
disp('% <комментарий>')
Например:
>> disp('% Значение Fs равно частоте дискретизации')
% Значение Fs равно частоте дискретизации
Для вывода в заголовке графика текста одновременно с численными значениями
переменных используется функция title с форматом, подобным функции disp.
Например (рис. 3):
>> N = 1000; Fs = 2000;
>> x = randn(1,1000);
>> stem(x), grid
>> title(['Частота дискретизации Fs = ' num2str(Fs) ' Длина шума N
= ' num2str(N)])
9
-1
-2
-3
-4
0 100 200 300 400 500 600 700 800 900 1000
На основе script-файла demoS2 (разд. 4.4) создадим script-файл demoS3 без вывода
гистограмм с использованием функции disp для вывода поясняющих комментариев:
script
clc % очистка окна Command Window
clear % очистка Workspace
x1 = randn(1,10000); % нормальный белый шум длины 10000
x2 = rand(1,10000); % равномерный белый шум длины 10000
[MeanG,VarG,MeanU,VarU] = demoF1(1,10000);
disp('% Среднее значение и дисперсия нормального белого шума')
disp([' MeanG = ' num2str(MeanG) ' VarG = ' num2str(VarG)])
disp('% Среднее значение и дисперсия равномерного белого шума')
disp([' MeanU = ' num2str(MeanU) ' VarU = ' num2str(VarU)])
B = input('Введите B = ');
11
C = input('Введите C = ');
A = C<B;
if (A == false)
disp('% Результат неправильный!')
end
ax + b, если a ≠ 0, b ≠ 0;
x ,
2
иначе.
x = 0:0.01:100;
a = input('Введите a = ');
b = input('Введите b = ');
if ( and ( a~=0, b~=0 ) )
plot( x, a*x+b ), grid, xlabel('x')
title(['a = ' num2str(a) ' b = ' num2str(b) ' a*x+b'])
else
plot( x, x.^2), grid, xlabel('x')
title(['a = ' num2str(a) ' b = ' num2str(b) ' x^2'])
end
a = 5 b = 17 a*x+b a = 0 b = 0 x. 2
600 10000
9000
500
8000
7000
400
6000
300 5000
4000
200
3000
2000
100
1000
0 0
0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
Ось x Ось x
x = 0:0.01:100;
a = input('Введите a = ');
b = input('Введите b = ');
switch (and ( a~=0, b~=0 ))
case true
plot( x, a*x+b ), grid, xlabel('x')
13
j = j+1;
B = B + C;
end
B