Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Создание новых массивов на основе существующих





 

Индексация при помощи двоеточия удобна при выделении части из большого объема данных в новый массив. Пусть задан вектор W

>> W=[0.1 2.2 3.4 5.6 3.1 6.8 9.7]

W =

0.1000 2.2000 3.4000 5.6000 3.1000 6.8000 9.7000

Составим вектор P, состоящий из всех элементов вектора W, кроме третьего, используя двоеточие и сцепление строк:

>> P=[W(1:2) W(4:7)]

P =

0.1000 2.2000 5.6000 3.1000 6.8000 9.7000

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

>> P=[1 2 0 2;4 10 12 5;0 11 10 5;9 2 3 5]

P =

1 2 0 2

4 10 12 5

0 11 10 5

9 2 3 5

Выделим из нее матрицу размером 2×2, находящуюся в центре:

>> P1=P(2:3,2:3)

P1 =

10 12

11 10

Вставим на это же место матрицу F размером 2×2:

>> F=[3 -7;4 11]

F =

3 -7

4 5

>> P(2:3,2:3)=F

P =

1 2 0 2

4 3 -7 5

0 4 11 5

9 2 3 5

Для удаления отдельных столбцов и строк матрицы используются пустые квадратные скобки [ ]. Удалим второй столбец матрицы P:

>> P(:,2)=[]

P =

1 0 2

4 -7 5

0 11 5

9 3 5

А теперь удалим вторую строку:

>> P(2,:)=[]

P =

1 0 2

0 11 5

9 3 5

«Растянуть» матрицу Р в единый вектор-столбец V можно с помощью простой записи:

>> V=P(:)

V =

«Расширять» матрицу, составляя ее из отдельных заданных матриц («блоков»), можно тоже довольно просто. Если заданы несколько матриц - блоков A1, A2,…,AN с одинаковым числом строк, то из них можно «слепить» единую матрицу А, объединяя блоки в одну «строку» операцией горизонтального сцепления A= [ A1,A2,…,AN ]. Аналогично вертикальное сцепление матриц можно реализовать при условии, что все составляющие блоки - матрицы имеют одинаковое число столбцов, применяя для отделения блоков вместо запятой точку с запятой: A= [ A1;A2;…,AN ].

Пример горизонтального сцепления:

>> A1=[1 2 3;4 5 6;7 8 9]

A1 =

1 2 3

4 5 6

7 8 9

>> A2=[10;11;12]

A2 =

>> A3=[14 15;16 17;18 19]

A3 =

14 15

16 17

18 19

>> A=[A1,A2,A3]

A =

1 2 3 10 14 15

4 5 6 11 16 17

7 8 9 12 18 19

Пример вертикального сцепления:

>> B1=[1 2 3 4 5]

B1 =

1 2 3 4 5

>> B2=[6 7 8 9 10;11 12 13 14 15]

B2 =

6 7 8 9 10

11 12 13 14 15

>> B3=[17 18 19 20 21]

B3 =

17 18 19 20 21

>> B=[B1;B2;B3]

B =

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

17 18 19 20 21

Построение таблицы значений функции

Пусть требуется вывести в командное окно таблицу значений функции

y = 3e-0,5xsinx при изменении аргумента х от 0 до 5 с шагом 0,5. Вычисление массива значений этой функции в указанных условиях можно осуществить с помощью простых операторов:

>> a=3;h=0.5;x=0:.5:5;y=a*exp(-h*x).*sin(x);

>> x

x =

Columns 1 through 10

0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000

Column 11

5.0000

>> y

y =

Columns 1 through 10

0 1.1201 1.5311 1.4135 1.0035 0.5144 0.0945 -0.1829 -0.3073 -0.3091

Column 11

-0.2361

Результат, отображенный на экране, не похож на таблицу. Построим таблицу в виде столбцов значений переменной и функции, используя вертикальное сцепление:

>> disp([x' y'])

0 0

0.5000 1.1201

1.0000 1.5311

1.5000 1.4135

2.0000 1.0035

2.5000 0.5144

3.0000 0.0945

3.5000 -0.1829

4.0000 -0.3073

4.5000 -0.3091

5.0000 -0.2361







Date: 2016-08-30; view: 199; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.01 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию