Как установить функцию prprob в matlab
Перейти к содержимому

Как установить функцию prprob в matlab

  • автор:

Character Recognition

This example illustrates how to train a neural network to perform simple character recognition.

Defining the Problem

The script prprob defines a matrix X with 26 columns, one for each letter of the alphabet. Each column has 35 values which can either be 1 or 0. Each column of 35 values defines a 5×7 bitmap of a letter.

The matrix T is a 26×26 identity matrix which maps the 26 input vectors to the 26 classes.

[X,T] = prprob;

Here A, the first letter, is plotted as a bit map.

plotchar(X(:,1))

Creating the First Neural Network

To solve this problem we will use a feedforward neural network set up for pattern recognition with 25 hidden neurons.

Since the neural network is initialized with random initial weights, the results after training vary slightly every time the example is run. To avoid this randomness, the random seed is set to reproduce the same results every time. This is not necessary for your own applications.

setdemorandstream(pi); net1 = feedforwardnet(25); view(net1)

Training the first Neural Network

The function train divides up the data into training, validation and test sets. The training set is used to update the network, the validation set is used to stop the network before it overfits the training data, thus preserving good generalization. The test set acts as a completely independent measure of how well the network can be expected to do on new samples.

Training stops when the network is no longer likely to improve on the training or validation sets.

net1.divideFcn = ''; net1 = train(net1,X,T,nnMATLAB);
Computing Resources: MATLAB on GLNXA64

Figure Neural Network Training (19-Aug-2023 11:42:55) contains an object of type uigridlayout.

Training the Second Neural Network

We would like the network to not only recognize perfectly formed letters, but also noisy versions of the letters. So we will try training a second network on noisy data and compare its ability to generalize with the first network.

Here 30 noisy copies of each letter Xn are created. Values are limited by min and max to fall between 0 and 1. The corresponding targets Tn are also defined.

numNoise = 30; Xn = min(max(repmat(X,1,numNoise)+randn(35,26*numNoise)*0.2,0),1); Tn = repmat(T,1,numNoise);

Here is a noise version of A.

figure plotchar(Xn(:,1))

Here the second network is created and trained.

net2 = feedforwardnet(25); net2 = train(net2,Xn,Tn,nnMATLAB);
Computing Resources: MATLAB on GLNXA64

Figure Neural Network Training (19-Aug-2023 11:43:01) contains an object of type uigridlayout.

Testing Both Neural Networks

noiseLevels = 0:.05:1; numLevels = length(noiseLevels); percError1 = zeros(1,numLevels); percError2 = zeros(1,numLevels); for i = 1:numLevels Xtest = min(max(repmat(X,1,numNoise)+randn(35,26*numNoise)*noiseLevels(i),0),1); Y1 = net1(Xtest); percError1(i) = sum(sum(abs(Tn-compet(Y1))))/(26*numNoise*2); Y2 = net2(Xtest); percError2(i) = sum(sum(abs(Tn-compet(Y2))))/(26*numNoise*2); end figure plot(noiseLevels,percError1*100,'--',noiseLevels,percError2*100); title('Percentage of Recognition Errors'); xlabel('Noise Level'); ylabel('Errors'); legend('Network 1','Network 2','Location','NorthWest')

Figure contains an axes object. The axes object with title Percentage of Recognition Errors, xlabel Noise Level, ylabel Errors contains 2 objects of type line. These objects represent Network 1, Network 2.

Network 1, trained without noise, has more errors due to noise than does Network 2, which was trained with noise.

Open Example

You have a modified version of this example. Do you want to open this example with your edits?

Пятигорский институт
(филиал)

ФГАОУ ВО «Северо-Кавказский федеральный университет»
Пятигорский институт (филиал) федерального государственного автономного образовательного учреждения высшего образования «Северо-Кавказский федеральный университет»

Официальной информацией о СКФУ могут считаться только материалы, размещённые на сайте ncfu.ru или на сайтах третьего уровня доменной зоны ncfu.ru. За сведения, размещённые на внешних ресурсах, СКФУ ответственности не несёт.

Контакт-центр: 8-800-200-64-76
(звонок бесплатный)

Форум MATLAB и Simulink

https://hub.exponenta.ru/

Собственно если тема еще не умерла расскажу о своих опытах.
Мне необходимо создать независимое приложение выполняющее простенькую задачу:

решение системы нелинейных ДУ и некоторая работа с начальными данными.

Сразу захотелось сделать нормальное Win32 приложение с графическим интерфейсом.

Пользовался MatLab 6.5 (MatLab Compiler 3.0) и Borland C++ Builder 6.0.

Нашел неплохую статью в интернете «П.Н. Палухин, В.В. Поддубный
ТЕХНОЛОГИЯ ИСПОЛЬЗОВАНИЯ MATLAB-ПРОГРАММ
В СРЕДАХ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ C/C++»(поисковик с легкостью найдет) в

которой как раз для этих версий программ все относительно подробно описано.

В частности там описывается как решить многие проблемы поднимавшиеся в этой ветке

(устранения кода матлаб который может вызвать ошибки при компиляции, перенос C кода в

Win32 Cpp приложение Borland C++ Builder, компиляция), единственное что там не описано это

подключение библиотек матлаба, а ест лишь ссылка на файл

MATLAB$\extern\examples\cppmath\borland\readme.txt который явно устарел (в моей установке

в этом файле описывается подключение библиотек лишь для BC++B 4.0). Зато там описывается

тщательно как же препарировать получившийся C код.

Я нашел сведения о том какие библиотеки lib надо поключать в других источниках(также в

инете), я использовал библиотеки из папки \MATLAB\extern\lib\win32\borland\bc54 (библитек

для версии повыше нету ), и частично из D:\MATLAB\extern\lib\win32, нужные библитеки lib

добавлял прямо в проект через Add to Project. Получив пару ошибок линковки (Unresolved . )

по именам процедур на которые прогнила ссылка нашел нужные имена нехватающих библитек

через полнотекстовый поиск имени процедуры среди def файлов лежащих в

MATLAB$\extern\include\, по имени def файла находил lib и поключал его.
Добился исчезновения ошибок линковки, и . ура. скомпилировалось.

НО! сразу при начале работы программы возникает Access Violation причем даже нельзя

воспользоваться дебаггером. Ошибка возникает где то на этапе инициализации приложения.

Мое подозрение что возникает это от покдлючения библитек несоответствующих версии

BC++B 6.0. В частности я покдлючал libmatpb54.lib хотя в ВС++В 6.0 компилятор C версии 5.6.

Но при поключении libmatpb56.lib который лежит там же (\MATLAB\extern\lib\win32) такой же

AV возникает уже при тестовой компиляции БЕЗ добавление сгенерированного матлабом C

кода(просто пустой проект с формочкой, с добавленными матлабовскими библитеками lib), а с

вот с libmatpb54.lib все норм, пустая формочка появляется без проблем.

Но уже после добавления си кода матлаба и выполнения действий перечисленных в статье AV

опять появляеться и уже никакой libmatpb5x.lib не помогает.

Собственно вот. Надеюсь кому то помог.

Может бы кто нибудь может что то сказать по поводу ошибок возникающих у меня.
1) Есть ли способ получения актуальных библитек lib для версии компилятора 5.6?
2) Может вопсользоватся другой средой разработки? (Microsoft Visual C++ или Visual Studio?)
3) Может ли пролема заключаться в неправильном вкрячивании сишного кода в приложение?

Может в статье написано что то неправильно?
4)Кто нибудь может привести ссылки на материалы по решению схожих вопросов ?

Заранее благодарен за любые комментарии и ответы.
В частности там описывается как решить многие проблемы поднимавшиеся в этой ветке (устранения кода матлаб который может вызвать ошибки при компиляции, перенос C кода в Win32 Cpp приложение Borland C++ Builder, компиляция), единственное что там не описано это подключение библиотек матлаба, а ест лишь ссылка на файл MATLAB$\extern\examples\cppmath\borland\readme.txt который явно устарел (в моей установке в этом файле описывается подключение библиотек лишь для BC++B 4.0). Зато там описывается тщательно как же препарировать получившийся C код.

Я нашел сведения о том какие библиотеки lib надо поключать в других источниках(также в инете), я использовал библиотеки из папки \MATLAB\extern\lib\win32\borland\bc54 (библитек для версии повыше нету ), и частично из D:\MATLAB\extern\lib\win32, нужные библитеки lib добавлял прямо в проект через Add to Project. Получив пару ошибок линковки (Unresolved . ) по именам процедур на которые пронила ссылка нашел нужные имена нехватающих библитек через полнотекстовый поиск имени процедуры среди def файлов лежащих MATLAB$\extern\include\ по имени def файла находил lib и поключал его.
Добился исчезновения ошибок линковки, и . ура. скомпилировалось.

НО! сразу при начале работы программы возникает Access Violation причем даже нельзя воспользоваться дебаггером. Ошибка возникает где то на этапе инициализации приложения. Мое подозрение что возникает это от покдлбенич библитек несоответствующих версии BC++B 6.0. В частности я покдлючал libmatpb54.lib хотя в ВС++В 6.0 компилятор C версии 5.6. Но при поключении libmatpb56.lib кот лежит там же (\MATLAB\extern\lib\win32) такой же AV возникает уже при тестовыой компиляции БЕЗ добавление сгенрированного матлабом C кода(просто пустой проект с формочкой с добавленными матлабовскими библитеками lib), а с вот с libmatpb54.lib все норм, пустая формочка появляется без проблем. Но уже после добавления си кода матлаба и выполнения действий перечисленных в статье AV опять появляеться и уже никакой libmatpb5x.lib не помогает.

Собственно вот. Надеюсь кому то помог.

Может бы кто нибудь может что то сказать по поводу ошибок возникающих у меня.
1) Есть ли способ получения актальных библитек lib для версии компилятора 5.6?
2) Может вопсользоватся другой средой разработки? (Microsoft Visual C++ или Visual Studio?)
3) Может ли пролема заключаться в неправильном вкряиваниии сишного кода в приложение? может в статье написано что то неправильно?
4)Кто нибудь может привести ссылки на материалы по решению схожих вопросов ?

Заранее благодарен за любые комментарии и ответы.

С наилучшими пожеланиями.
Komarov Эксперт Сообщения: 93 Зарегистрирован: Вт апр 19, 2005 3:31 pm

Сообщение Komarov » Ср янв 17, 2007 11:15 am

Я думаю, вы уже потратили на приручение библиотек MATLAB больше времени, чем если бы написали все с нуля на Си.

MATLAB R13 позволял с большими трудностями преобразовать программу в Си-код и иногда даже получалось её откомпилировать, найдя нужные библиотеки. Но на самом деле, гораздо проще найти или купить необходимые математические библиотеки или компоненты для С++/С#. И написать все с нуля.

MATALB R14 и старше предлагает другой путь, компилер просто упаковывает вашу программу и необходимые пакеты в один файл — гарантируя при этом исполнение на любой машине (с предварительно установленным MCRInstaller.exe), если кто-то считает что интерпретаторы — это прошлый век, то напомню о сверхновом C#, который работает по похожей технологии.

К сожалению пока не существует, программы автоматически преобразующей полет вашей фантазии в готовый Си-код, точно также нельзя получить его и из MATLAB – слишком много может быть вариантов реализации и оптимизации.

Если Ваша цель – оптимизированный под Windows или другие платформы и процессоры Си-код, а ваш проект хорошо и наглядно может быть представлен с помощью блок-диаграмм и сигналов, то вам прямая дорога в Simulink и Stateflow. Преобразование Simulink-диаграмм решается с помощью Real-Time Workshop.

Frosty Пользователь Сообщения: 5 Зарегистрирован: Вс янв 14, 2007 10:50 pm

Сообщение Frosty » Ср янв 17, 2007 11:08 pm

С удовольствием посмотрю на Real-Time Workshop, но боюсь не совсем соответствует моей задаче. Мне вобщем то нужно перегнать в ехе довольно простой m-файл функцию. Я б даже отказался и от нормального интерфейса, на самом деле не так страшно если бы мой нормальный самописный клиент запускал автоматически консольный экзешник сгенерированный матлабом. А стал делать такой тестовый проект просто потому что наткнулся на эту статью.

Может странно конешно, но я НЕ ВЕРЮ чтобы код генерящийся в матлабе из примитивной функции нельзя было использовать в созданиии нормального приложения.

С наилучшими пожеланиями.
Гость

Сообщение Гость » Чт янв 18, 2007 12:46 pm

А что делать если:

>> mcc -m file.m
‘Ёб⥬Ґ ­Ґ г¤ Ґвбп ­ ©вЁ гЄ § ­­л© Їгвм.
Borland C++ 5.6 for Win32 Copyright (c) 1993, 2002 Borland
Error E2266: No file names given

C:\MATLAB_R2006A\BIN\MEX.PL: Error: Compile of ‘file_main.c’ failed.

Error: An error occurred while shelling out to mbuild (error code = 1).
Unable to build executable (specify the -v option for more information).
. Error executing mcc, return status = 1.

Раньше радотало, а переустановил и перестало.

MihailS Пользователь Сообщения: 89 Зарегистрирован: Пт окт 28, 2005 7:03 am

Сообщение MihailS » Пн янв 22, 2007 3:16 pm

при запуске скомпилированного myfile.exe создается папка myfile_mcr. Как сделать, чтоб после завершения выполнения эта папка удалялась?

Aartem Пользователь Сообщения: 1 Зарегистрирован: Пт июн 22, 2007 5:04 am

Сообщение Aartem » Пт июн 22, 2007 1:07 pm

Мой рецепт по сабжу (Из матлаба в exe). MATLAB2006b.

ввести в консоли

cd(prefdir)
edit compopts.bat

в compopts.bat добавть к свойству LINKFLAGS параметр -subsystem windows

set LINKFLAGS=%LINKFLAGS% -subsystem windows

Собрать .exe проект (MyProject.m — файл с интерфейсом)

mcc -m -N MyProject.m
Если спросят, то выберите компилятор матлаба
готово
скопируйте файлы
MyProject.exe
MyProject.ctf
в отделную папку — это и есть Ваше приложение.

Теперь, для запуска вашего приложения надо установить MCRInstaller.
Он лежить в папке с установленным MATLABом по адресу
%MATLAB%\toolbox\compiler\deploy\win32\MCRInstaller.exe
После установки MCRInstaller надо перезагрузится.
Всё. Можно работать.

Я ещё создал .bat файл для подтирания папок после запуска программы
@ECHO off
@MyProject.exe
@deltree /y .\*_mcr
@ECHO on

deltree.exe — это программка, удаляющая директории — легко ищется в интернете. (другого способа удалить директории не искал).

Потом сделал ярлык для батника и в свойствах ярлыка указал «свёртываться в значок» (по другому скрыть окно батника не удалось).

В итоге — запускаем ярлык -> появляется GUI, после закрытия которого удаляются папки *_mcr.

adai Пользователь Сообщения: 2 Зарегистрирован: Чт июл 26, 2007 2:38 pm

Сообщение adai » Чт июл 26, 2007 2:53 pm

Запустить mbuild — setup в командном окне Matlab или в окне DOS.
Это необходимо, если вы собираетесь создавать независимые приложения.
Посредством меню надо указать версию компилятора Microsoft
Visual C/C++, инсталлированного на вашем компьютере:
Please choose your compiler for building standard-alone MATLAB
applications:
Would you like mbuild to locate installed compilers [y]/n? n
Select a compiler:
[1] Borland C++ Builder version 5.0
[2] Borland C++ Builder version 4.0
[3] Borland C++ Builder version 3.0
[4] Borland C/C++ version 5.02
[5] Borland C/C++ version 5.0
[6] Borland C/C++ (free command line tools) version 5.5
[7] Lcc C version 2.4
[8] Microsoft Visual C/C++ version 6.0
[9] Microsoft Visual C/C++ version 5.0
[0] None
Compiler: 8
Your machine has a Microsoft Visual C/C++ compiler located at
C:\Program Files\Microsoft Visual Studio.
Do you want to use this compiler? [y]/n y
Please verify your choices:
Compiler: Microsoft Visual C/C++ 6.0
Location: C:\Program Files\Microsoft Visual Studio
Are these correct? ([y]/n): y

Если в ответ на приглашение вы введете значение y, Matlab отобразит в
рабочей области приведенный ниже текст. Этот текст оканчивается напоминанием
о том, что если вы хотите использовать дополнительный модуль Matlab в
среде Microsoft Visual C++, вам необходимо выполнить две команды.

The default options file:
“C:\WINDOWS\Application Data\MathWorks\MATLAB\R12\compopts.bat” is
being updated from
C:\MATLAB6P1\BIN\WIN32\mbuildopts\msvc60compp.bat .
Installing the MATLAB Visual Studio add-in .
Updated C:\Program Files\Microsoft Visual
Studio\common\msdev98\template\MATLABWizard.awx from
C:\MATLAB6P1\BIN\WIN32\MATLABWizard.awx
Updated C:\Program Files\Microsoft Visual
Studio\common\msdev98\template\MATLABWizard.hlp from
C:\MATLAB6P1\BIN\WIN32\MATLABWizard.hlp
Updated C:\Program Files\Microsoft Visual
Studio\common\msdev98\addins\MATLABAddin.dll from
C:\MATLAB6P1\BIN\WIN32\MATLABAddin.dll Merged
C:\MATLAB6P1\BIN\WIN32\usertype.dat with C:\Program
Files\Microsoft Visual Studio\common\msdev98\bin\usertype.dat
Note: If you want to use the MATLAB Visual Studio add-in with the
MATLAB C/C++ Compiler, you must start MATLAB and run the following
commands:
cd(prefdir);
mccsavepath;
(You only have to do this configuration step once.)

По окончании настройки mbuild создаст в каталоге C:\WINDOWS\Profiles
файл опций. Заметьте, что информацию о расположении компилятора задает
пользователь. На этом заканчивается настройка библиотек и установка среды
разработки. Теперь все готово для создания приложений в среде Matlab.

Можно вызвать в командном окне Matlab cd (prefdir); mccsavepath;. Эти
команды сохраняют текущий путь к Matlab в файле с именем mccpath
в папке user preferences. Поскольку Matlab Add-In for Visual Studio
выполняется за пределами среды Matlab, путь к Matlab необходимо сохранить.
Этот путь использует Visual Studio при взаимодействии с Matlab.
Каталог prefdir применяется по умолчанию для хранения пути к Matlab.
По желанию вы можете заменить prefdir любым другим каталогом.

0 Для того чтобы преобразовать M-функцию в исполняемый файл, к которому
можно обратиться из программы на VC++, выполните следующие действия.
В командном окне Matlab вызовите Matlab Compiler (mcc) и преобразуйте
с его помощью M-функцию в независимое приложение (опция -m указывает
на то, что на основе M-файла должен быть сгенерирован код С).
mcc -B sgl файл.m
Опция -B указывает на наличие дополнительных файлов; опция sgl
сообщает, что при компиляции должна использоваться Matlab C/C++
Graphics Library, а генерируемый файл должен содержать код независимого
графического приложения. Ниже приведены файлы, созданные в
результате выполнения данной команды.
файл.c файл.h файл.exe и т.д. в зависимости от содержания.

В данном случае нам нужен только файл.exe, представляющий
собой независимое приложение.

1 Запустите VC++ 6.0 и выберите пункт New меню File. Затем на вкладке
Project выберите Win32 Console Application, создав таким образом новый
проект консольного приложения Win32. В поле редактирования Project
name: введите имя проекта Matlabфайл, а в поле Location: задайте каталог,
в котором вы хотите разместить проект, например D:\Vc. Щелкните на
кнопке OK, чтобы закрыть диалоговое окно. В следующем диалоговом окне
оставьте установки по умолчанию неизменными и щелкните на кнопке
Finish. В появившемся после этого окне щелкните на кнопке OK. В результате
ваших действий будет создана рабочая область нового проекта.

2 Щелкните на вкладке FileView и выберите папку Source Files. Щелкните
на пункте меню File и снова выберите пункт New, чтобы открыть новое
диалоговое окно. На этот раз по умолчанию будет выбрана вкладка Files.
Выберите в ней пункт C++ Source File, приступив таким образом к созданию
нового исходного файла C++. В поле редактирования File name:
введите имя Matlabфайла и щелкните на кнопке OK. Этим вы создадите
новый исходный файл с именем Matlabфайл.

3 Включите в созданный файл код. В функции main() содержится вызов независимого приложения
файл.exe, созданного ранее с использованием Matlab Compiler 2.1.

Character Recognition plotchar / prprob!

Hello. Such problem, how to change a function plotchar prprob for letters 9х10 pixels ?A function works only with letters 5х7 ( there is an example on a picture 1) , but when I use a function with letters 9х10 that result such that pixels are distorted and the size of result remains 5х7 pixels are fixed ( by an example on 2 pictures).I changed the function of prprob and did all letters 9х10 bits (1 , 0).Please help me ! P.S Sorry for my bad English.

function plotchar(c)

%PLOTCHAR Plot a 35 element vector as a 5×7 grid.

% C — a 35 element vector.

% C’s elements are plotted as a 5×7 grid.

% Mark Beale, 12-15-93

% Copyright 1992-2002 The MathWorks, Inc.

% $Revision: 1.11 $ $Date: 2002/04/14 21:23:48 $

% DEFINE BOX

x1 = [-0.5 -0.5 +0.5 +0.5 -0.5];

y1 = [-0.5 +0.5 +0.5 -0.5 -0.5];

% DEFINE BOX WITH X

x2 = [x1 +0.5 +0.5 -0.5];

y2 = [y1 +0.5 -0.5 +0.5];

plot(x1*5.6+2.5,y1*7.6+3.5, ‘m’ );

axis([-1.5 6.5 -0.5 7.5]);

axis( ‘equal’ )

for i=1:length(c)

x = rem(i-1,5)+.5;

y = 6-floor((i-1)/5)+.5;

plot(x2*c(i)+x,y2*c(i)+y);

function [alphabet,targets] = prprob()

%PRPROB Character recognition problem definition

% [ALHABET,TARGETS] = PRPROB()

letterA = [0 1 1 1 1 1 1 1 0 .

0 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1]’;

letterB = [ 1 1 1 1 1 1 1 1 0 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 0]’;

letterC = [0 1 1 1 1 1 1 1 0 .

0 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 1 1 1 .

1 1 1 1 1 1 1 1 0 .

0 1 1 1 1 1 1 1 0]’;

letterD = [1 1 1 1 1 1 1 1 0 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 1 1 1 1 1 1 0 .

1 1 1 1 1 1 1 1 0]’;

letterE = [1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 1 1 1 1 1 1 0 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 1]’;

letterF = [1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 1 1 1 1 1 1 0 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0]’;

letterG = [0 1 1 1 1 1 1 1 0 .

0 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 1 1 1 1 1 .

1 1 0 0 1 1 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 1 1 1 1 1 1 1 .

0 1 1 1 1 1 1 1 0]’;

letterH = [1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1]’;

letterI = [0 0 1 1 1 1 1 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 1 1 1 1 1 0 0]’;

letterJ = [0 0 0 0 0 0 1 1 1 .

0 0 0 0 0 0 1 1 1 .

0 0 0 0 0 0 1 1 1 .

0 0 0 0 0 0 1 1 1 .

0 0 0 0 0 0 1 1 1 .

0 0 0 0 0 0 1 1 1 .

0 0 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 1 1 1 1 1 1 1 .

0 1 1 1 1 1 1 1 0]’;

letterK = [1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 1 1 1 0 .

1 1 0 0 1 1 0 0 0 .

1 1 1 1 1 1 0 0 0 .

1 1 1 1 1 1 0 0 0 .

1 1 0 0 1 1 0 0 0 .

1 1 0 0 1 1 1 1 0 .

1 1 0 0 0 1 1 1 0 .

1 1 0 0 0 0 1 1 1]’;

letterL = [1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 1 1 1 1 1 1 0 .

1 1 1 1 1 1 1 1 0]’;

letterM = [1 1 0 0 0 0 0 1 1 .

1 1 1 0 0 0 1 1 1 .

1 1 1 0 0 0 1 1 1 .

1 1 1 1 0 1 1 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 0 1 1 1 0 1 1 .

1 1 0 0 1 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1]’;

letterN = [1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 1 0 0 0 0 1 1 .

1 1 1 1 0 0 0 1 1 .

1 1 1 1 1 1 0 1 1 .

1 1 0 1 1 1 1 1 1 .

1 1 0 0 0 1 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1]’;

letterO = [0 1 1 1 1 1 1 1 0 .

0 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 1 1 1 1 1 1 1 .

0 1 1 1 1 1 1 1 0]’;

letterP = [1 1 1 1 1 1 1 1 0 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0 .

1 1 0 0 0 0 0 0 0]’;

letterQ = [0 1 1 1 1 1 1 1 0 .

0 1 1 1 1 1 1 1 0 .

1 1 1 0 0 0 1 1 1 .

1 1 1 0 0 0 1 1 1 .

1 1 1 0 0 0 1 1 1 .

1 1 1 0 0 0 1 1 1 .

1 1 1 0 0 0 1 1 1 .

1 1 1 1 1 1 1 1 1 .

0 1 1 1 1 1 1 1 0 .

0 0 0 0 0 0 1 1 1]’;

letterR = [1 1 1 1 1 1 1 1 0 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 1 1 1 0 0 .

1 1 0 0 0 1 1 0 0 .

1 1 0 0 0 1 1 1 0 .

1 1 0 0 0 0 1 1 1]’;

letterS = [0 1 1 1 1 1 1 1 0 .

1 1 1 1 1 1 1 1 0 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 0 0 0 .

1 1 1 1 1 1 1 1 0 .

0 1 1 1 1 1 1 1 1 .

0 0 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

1 1 0 0 0 0 1 1 1 .

0 1 1 1 1 1 1 1 0]’;

letterT = [1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 1 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0]’;

letterU = [1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 1 1 1 1 1 1 1 .

0 1 1 1 1 1 1 1 0]’;

letterV = [1 0 0 0 0 0 0 0 1 .

1 1 0 0 0 0 0 1 1 .

1 1 0 0 0 0 0 1 1 .

1 1 1 0 0 0 1 1 1 .

0 1 1 0 0 0 1 1 0 .

0 1 1 1 0 1 1 1 0 .

0 0 1 1 1 1 1 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 0 1 0 0 0 0]’;

letterW = [1 1 0 1 1 1 0 1 1 .

1 1 0 1 1 1 0 1 1 .

1 1 0 1 1 1 0 1 1 .

1 1 0 1 1 1 0 1 1 .

1 1 0 1 1 1 0 1 1 .

1 1 0 1 1 1 0 1 1 .

1 1 0 1 1 1 0 1 1 .

1 1 0 1 1 1 0 1 1 .

1 1 1 1 1 1 1 1 1 .

0 1 1 1 0 1 1 1 0]’;

letterX = [1 1 0 0 0 0 0 1 1 .

1 1 1 0 0 0 1 1 1 .

0 1 1 1 0 1 1 1 0 .

0 0 1 1 1 1 1 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 1 1 1 1 1 0 0 .

0 1 1 1 0 1 1 1 0 .

1 1 1 0 0 0 1 1 1 .

1 1 0 0 0 0 0 1 1]’;

letterY = [1 1 0 0 0 0 0 1 1 .

1 1 1 0 0 0 1 1 1 .

0 1 1 0 0 0 1 1 0 .

0 1 1 1 1 1 1 1 0 .

0 0 1 1 1 1 1 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0 .

0 0 0 1 1 1 0 0 0]’;

letterZ = [1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 1 .

0 0 0 0 0 0 1 1 1 .

0 0 0 0 0 1 1 1 1 .

0 0 0 0 1 1 1 1 0 .

0 0 0 1 1 1 0 0 0 .

0 1 1 1 1 0 0 0 0 .

1 1 1 1 0 0 0 0 0 .

1 1 1 1 1 1 1 1 1 .

1 1 1 1 1 1 1 1 1]’;

alphabet = [letterA,letterB,letterC,letterD,letterE,letterF,letterG,letterH, .

letterI,letterJ,letterK,letterL,letterM,letterN,letterO,letterP, .

letterQ,letterR,letterS,letterT,letterU,letterV,letterW,letterX, .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *