Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Обработка массивов и матриц в SciLab

Читайте также:
  1. C - матрица (по форме напоминает куб) применяется для определения взаимосвязи элементов трех списков одновременно.
  2. Error. Обработка ошибок
  3. Водоподготовка и коррекционная обработка воды
  4. Выделение и обработка объектов телесных тонов
  5. Глава 3. Кодирование и обработка числовой информации- 10 часов
  6. Изучение приемов программирования задач с использованием двухмерных массивов
  7. Как найти обратную матрицу?

Рассмотрим возможности sci - языка для обработки массивов и матриц Особенностью программирования задач обработки массивов (одномерных, двумерных) на sci- языке является возможность, как поэлементной обработки массивов, так и использование функций SciLab для работы массивами и матрицами.

Рассмотрим основные алгоритмы обработки массивов и матриц и их реализацию на sci -. языке

Ввод вывод массивов и матриц.

Ввод массивов и матриц следует организовывать поэлементно.

Пример 1. Ввод элементов массива

N= input ('N=');disp('Vvod massiva x:');for i=1:N x(i)= input ('x'+code2str(i)+'=');enddisp(x);

Пример 2. Ввод элементов матрицы

N= input ('N=');M= input ('M=');disp('Vvod matrici');for i=1:Nfor j=1:Ma(i,j)= input ('a'+code2str(i)+code2str(j)+'=');endend

Вывод массива матрицы можно организовать аналогичным образом в цикле или

воспользоваться оператором disp для вывода массива (матрицы) целиком.

Вычисление суммы и произведения элементов массива (матрицы).

//Вычисление суммы элементов массива//Формируем одномерный массив format(5)x=rand(1,10,'normal');disp('Исходный массив')disp([x])format(10) //Записываем в переменную s число 0 s=0; //Перебираем все элементы массива for i=1:length(x) //накопление суммы s=s+x(i);enddisp('Сумма')disp(s) //Вычисление произведения элементов массива p=1;for i=1:length(x)p=p*x(i);enddisp('Произведение')disp(p)

Вычисление суммы и произведения элементов матрицы

n= input ('n=');m= input ('m=');format(6)disp('Исходная матрица:');a=rand(n,m);disp(a) //Вычисляем количество строк N и столбцов M матрицы A. s=0[N,M]=size(a);for i=1:Nfor j=1:Ms=s+a(i,j);endenddisp('Сумма')disp(s); //Начальное значение произведение (p) равно 1. p=1; //Вычисляем количество строк N и столбцов M матрицы A. [N,M]=size(a); //Перебираем все строки матрицы. for i=1:N //Перебираем все столбцы матрицы. for j=1:M //Умножаем значение p на текущий элемент матрицы. p=p*a(i,j);endendformat(10)disp('Произведение')disp(p)

Поиск максимального минимального элемента массива (матрицы)

Программа поиска максимума одномерного массива

//Формируем одномерный массив format(6)x=rand(1,10,'normal');disp('Исходный массив')disp([x]) //Записываем в Max значение первого элемента массива. Max=x(1); //Записываем в Nmax значение номер максимального элемента//массива, сейчас это число 1. Nmax=1; //Перебираем все элементы массива, начиная со второго. for i=2:N //Если текущий элемент массива больше Max, if x(i)>Max //то текущий элемент массива объявляем максимальным, Max=x(i); //а его номер равен i. Nmax=i;endenddisp('Максимальный элемент')disp(Max)

Программа поиска минимума матрицы

n= input ('n=');m= input ('m=');format(6)disp('Исходная матрица:');a=rand(n,m);disp(a) //Записываем в Min a(1,1), в Nmin и Lmin число 1. Min=a(1,1); Nmin=1; Lmin=1;for i=1:nfor j=1:m //Если текущий элемент матрицы меньше Min, if a(i,j)<Min //то текущий элемент массива объявляем минимальным, Min=a(i,j); //а его индексы равны i и j. Nmin=i;Lmin=j;end; end;end;disp('Минимум')disp(Min)

Сортировка элементов массива

Сортировка элементов массива по возрастанию

//Формируем одномерный массив format(5)x=rand(1,10,'normal');disp('Исходный массив:')disp(x)for i=1:length(x)-1 for j=1:length(x)-i //Сравниваем два соседних элемента, и если предыдущий меньше// последующего, if x(j)>x(j+1) //то меняем их местами. b=x(j);x(j)=x(j+1);x(j+1)=b;end;end;end; //Вывод упорядоченного массива. disp('Упорядоченный массив:')disp(x);

Удаление элемента из массива

//Формируем одномерный массив format(5)x=rand(1,10,'normal');disp('Исходный массив:')disp(x)n=length(x); //Ввод номера удаляемого элемента. m= input ('m='); //Сдвиг всех элементов, начиная с m-го на один влево. for i=m:n-1x(i)=x(i+1);end; // Удаление n-го элемента из массива. x(:,n)=[]; //Уменьшение n на 1. n=n-1; //Вывод преобразованного массива disp('Преобразованный массив:')disp(x);

 

 


Дата добавления: 2015-08-09; просмотров: 245 | Нарушение авторских прав


Читайте в этой же книге: Оператор присваивания | Условный оператор | Оператор альтернативного выбора |
<== предыдущая страница | следующая страница ==>
Операторы цикла| и их уровней на 2015/16 учебный год

mybiblioteka.su - 2015-2024 год. (0.006 сек.)