Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 3
1

Разделение массива на подмассивы

09.10.2016, 20:29. Показов 4994. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Есть большой массив данных, полученных с мультисенсора газа, где первый столбец обозначает текущую атмосферу, а остальные - значения сопротивления отдельных сенсоров. Нужно разделить этот массив на несколько подмассивов, соответствующих каждый определенной атмосфере (в экселевском файле их несколько - Air, Ethanol, Acetone, Propanol и Ammonia).

В матлабе пытался сделать это через функцию strcmp(), а именно - сравнивать значения первого столбца всех строк исходного массива с переменной, допустим, E = 'Ethanol' и т.п. Если бы значение функции strcmp() было равно 1, программа добавляла бы всю строку в новый массив.

В программировании я полный ноль, поэтому буду рад любой помощи.

Заранее спасибо.
http://itmages.ru/image/view/5001335/4aef468b (исходный массив)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2016, 20:29
Ответы с готовыми решениями:

Вывести подмассивы заданного массива
Пусть задан массив целых чисел а1, а2, ..., аn. Назовем его подмассивом f(i,j) массив, составленный...

Выбросить с массива одинаковые подмассивы
Помогите пожалуйста. Есть массив Array( => Array ( => name1 ...

Удалить из массива X пустые подмассивы
Массив X содержит несколько нулевых элементов, разделяющих его на отдельные подмассивы. Первый и...

Алгоритм разбиения массива на подмассивы
Здравствуйте, помогите написать алгоритм есть массив элементов А вычисляются значения А10 ...

6
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
09.10.2016, 20:54 2
вы бы лучше excel-файл прикрепили...
0
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 3
09.10.2016, 21:02  [ТС] 3
Да, конечно, извиняюсь, что-то совсем забыл, что так можно.

Файл в архиве, так как экселевский слишком большой по размеру.
Вложения
Тип файла: 7z src_data.7z (82.2 Кб, 11 просмотров)
0
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
09.10.2016, 21:34 4
Лучший ответ Сообщение было отмечено justSoloma как решение

Решение

вот такое вот неизящное решение...
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clc; clear all;
[num,txt]=xlsread('src_data.xls');
%%
poisk = {'Air', 'Ethanol','Acetone', 'Propanol',  'Ammonia'};
%%
d1=[]; d2=[]; d3=[]; d4=[]; d5=[];
 
%%
for i=1:length(txt)
    if (strcmp(txt{i},poisk{1}))
        d1=[d1; num(i,:)];
    elseif (strcmp(txt{i},poisk{2}))
        d2=[d2; num(i,:)];
    elseif (strcmp(txt{i},poisk{3}))
        d3=[d3; num(i,:)];
    elseif (strcmp(txt{i},poisk{4}))
        d4=[d4; num(i,:)];
    elseif (strcmp(txt{i},poisk{5}))
        d5=[d5; num(i,:)];
    end   
end
1
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 3
09.10.2016, 21:53  [ТС] 5
Большое спасибо!

А Вас не затруднит вкратце объяснить, в чем смысл 6 строчки?
0
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
09.10.2016, 21:59 6
определение массивов, в строках 11,13,15,17 и 19 идет конкатенация с уже подготовленными массивами
1
Модератор
1700 / 1552 / 520
Регистрация: 13.09.2015
Сообщений: 5,370
09.10.2016, 23:20 7
justSoloma, могу предложить чуть улучшенный вариант:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
clc; clear all;
[num,txt,str]=xlsread('src_data.xls');
u=unique(txt);
for I=1:length(u)
  f=find(strcmp(txt,u(I)));
  d{I}=str(f,:);
end
d1=d{1};
d2=d{2};
d4=d{4};
d5=d{5};
Если нужны только числовые значения, то во второй строке str можно убрать, а в 6 строке вместо
Matlab M
1
str(f,:)
нужно поставить
Matlab M
1
num(f,:)
2
09.10.2016, 23:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2016, 23:20
Помогаю со студенческими работами здесь

Разделение массива на два со значениями null + дальнейшая отрисовка этого массива в PNG картинку
Всем доброго времени суток! Делаю задачу на сегментацию изображений в Lab View. Требуется...

Разделение массива на два других массива - на мужчин и женщин
Считываю построчно все строки txt файла в массив. Примерное содержание файла: -----------...

Разделение массива
Разделить массив на две части так чтобы разница сумм элементов была минимальной возможной . массив...

разделение массива
как разделить массив помогите пожалуйста


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

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