2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 252
1

Строка матрицы в отдельную переменную

18.03.2017, 10:52. Показов 3128. Ответов 24
Метки нет (Все метки)

Доброго времени суток. Имеется функция 'webcamlist'. Количество строк в матрице на выходе, будет равно количеству подключённых веб-камер. Количество камер может быть не постоянным, из-за чего функция типа:
web_1 = webcamlist(1);
web_2 = webcamlist(2);
................................
web_n = webcamlist(n);

не подходит. Нужно что б функция автоматически определяла количество камер, и каждую камеру записывала в свою переменную. Как это реализовать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2017, 10:52
Ответы с готовыми решениями:

Через циклы for присвоить каждой цифре отдельную переменную.
Дано число, состоящие из n цифр. через циклы for присвоить каждой цифре отдельную переменную что...

Занести слово, найденное по шаблону в отдельную переменную
Писал в раздел "Регулярные выражения", но там никто не ответил на данный момент...

Каждую букву слова занести в отдельную переменную
Есть слово "кот" и есть 5 переменных String, нужно рандомно разместить буквы к о т в этих...

Записать каждое слова текста в отдельную строковую переменную
Приветствую. Есть n количество слов в тексте, разделены пробелом. Как можно записать каждое слово...

24
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 11:01 2
зачем отдельные переменные? используйте переменную-массив..
0
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 252
18.03.2017, 11:13  [ТС] 3
Мне потом каждую переменную вставлять в тело основной функции. В итоге от количества камер, буде определяться количество функций для фотографирования.
0
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 11:21 4
Цитата Сообщение от Alexandrit84 Посмотреть сообщение
каждую переменную вставлять в тело основной функции.
для этого можно использовать и элемент массива

пример
Matlab M
1
2
3
4
5
6
7
% отдельные переменные
x1=5; x2=6; x3=7;
y=x1+x2+x3
 
% массив
x=[5 6 7];
y=x(1)+x(2)+x(3)
0
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 252
18.03.2017, 11:31  [ТС] 5
Цитата Сообщение от Krasme Посмотреть сообщение
x1=5; x2=6; x3=7;
Вот как раз количество Х, надо находить автоматически. Их может быть 3 а может и 1, а может и 10. Количество Х-ов, это количество камер подключённых к компьютеру. Оно будет динамическим.
0
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 11:40 6
количество Х равно длине массива
0
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 252
18.03.2017, 11:58  [ТС] 7
Что то я не догоняю.))))) А как это использовать в моём примере с 'webcamlist'?

Добавлено через 4 минуты
У меня написано вот так:

в wecam записано две вебки

Matlab M
1
2
3
4
5
wecam = webcamlist
nom_web = size(wecam, 1)
for ii = 1 : nom_web   
    weber(ii) = wecam(ii)
end
Работаю с матлабом не давно, по этому составление циклов очень храмает.
В переменную weber записывается сначала одна вебка. При втором проходе две.
А надо что б было на выходе

Matlab M
1
2
weber(1) = wecam(1)
weber(2) = wecam(2)
0
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 12:06 8
1. покажите, что записано в wecam (это можно увидеть в workspace)
2. по вашему коду даже цикл не нужен, для перезаписи одной переменной в другую достаточно
Matlab M
1
weber = wecam
0
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 252
18.03.2017, 12:27  [ТС] 9
Вот содержание

weber = wecam
Таким образом в weber запишется обе строки переменной wecam.
Миниатюры
Строка матрицы в отдельную переменную  
0
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 12:39 10
wecam - массив ячеек, до получения имени какой-то камеры достаточно использовать индекс! нет нужды переписывать в отдельные переменные или создавать идентичный массив.

Цитата Сообщение от Alexandrit84 Посмотреть сообщение
weber запишется обе строки переменной wecam.
правильно, массив переписывается в массив

поиграйте с этим примером
Matlab M
1
2
3
4
5
6
wecam={'web1';'web2';'web3'}
wecam(1)
wecam(2)
weber = wecam
disp([ weber(1) weber(2) weber(3)])
disp([ wecam(1) wecam(2) wecam(3)])
0
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 252
18.03.2017, 13:19  [ТС] 11
Из последнего примера. Я же заранее не знаю сколько у меня будет подключено камер. По этому количество переменных wecam(n) не известно. Их надо определять автоматически. И в итоге каждой давать название.
0
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 13:31 12
Цитата Сообщение от Alexandrit84 Посмотреть сообщение
Количество строк в матрице на выходе, будет равно количеству подключённых веб-камер.
Matlab M
1
2
3
4
wecam={'web1';'web2';'web3'}
[N,~]=size(wecam)
i=1:N;
wecam(i)
0
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 252
18.03.2017, 14:19  [ТС] 13
)))))))))))) Возможно мы друг друга не поняли. Есть компьютер, к которому подключены веб-камеры. Число камер не постоянно, может меняться. Нужно средствами Матлаба определить количество веб-камер и каждой веб-камере присвоить определённую переменную. В моём случае это web_1, web_2. Но может быть web_3, web_4 и т.д.
Что я делаю:

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
wecam = webcamlist            % Узнаю сколько камер подключено, и их названия
 
nom_web = size(wecam, 1)   %В переменную nom_web записываю количество строк в матрице wecam, это будет количество камер
 
for ii = 1 : nom_web    
 
        %В данном цикле происходит счёт от 1 до nom_web, то есть в моём случае до 2.
 
web_(ii) = wecam(ii) 
 
      %А вот эта строка и есть тот тупик, в который я упёрся. Именно тут должно происходить 
      %присвоение переменной. Если в wecam 2 строки, то на выходе должно быть что то типа 
      %web_1 = 'HP Truevision HD'
      %web_2 = 'A4 TECH USB2.0 PC Camera E'
      %Ну и если камер больше, то web_3 = *******, web_4 = ********, и т.д.
 
end
Но из-за моего не умения писать циклы(маленький опыт в Матлабе), правильно записать эту функцию я не могу.
0
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 15:28 14
ну и что каждый раз камеры могут быть разные
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
clc; clear all;
% первый раз матлаб определил список
wecam={'web1';'web2';'web3'};
[N,~]=size(wecam)
for i=1:N
    % что-то делаешь с этой камерой
    disp(wecam{i})
end 
 
% второй раз матлаб определил список
wecam={'web3';'web1';'web6';'web8';'web10000'};
[N,~]=size(wecam)
for i=1:N
    % что-то делаешь с этой камерой
    disp(wecam{i})
end
 
% третий раз камеры чихали на работу и отключились
wecam={};
[N,~]=size(wecam)
if N==0; disp('Надоело!'); end;
for i=1:N
    % что-то делаешь с этой камерой
    disp(wecam{i})
end
0
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 252
18.03.2017, 15:37  [ТС] 15
Каждый раз не камеры разные, а количество камер разное.

А вы запускали этот код?

Добавлено через 1 минуту
По сути это тоже самое что и
wecam = webcamlist
nom_web = size(wecam, 1)

Добавлено через 1 минуту
В wecam матрица с названиями камер, в nom_web количество камер.
С этим то проблем нету. Проблема с присвоением каждой камере переменной((((((
0
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 16:10 16

переменные, так переменные
Matlab M
1
2
3
4
5
6
7
8
clc; clear all;
 
webcamlist = {'web1';'web3';'web6'};
 
[N,~]=size(webcamlist);
for i=1:N
    eval(['web_' num2str(i)' ' = webcamlist{i}'])
end
0
164 / 144 / 49
Регистрация: 29.10.2014
Сообщений: 738
18.03.2017, 16:22 17
Я думаю Вам хотят сказать, что в webcamlist = {неизвестно сколько камер}; т.е. их количество нужно определить.
0
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 16:35 18
faraonCar, на это есть
Matlab M
1
[N,~]=size(webcamlist);
0
164 / 144 / 49
Регистрация: 29.10.2014
Сообщений: 738
18.03.2017, 16:40 19
Вы не поняли, у Вас webcamlist задан 3 параметрами, size определит количество, а Вас просят определить в webcamlist любое количество параметров, т.е. webcamlist может быть
webcamlist = {'web1';'web3';'web6'};
webcamlist = {'web1'};
webcamlist = {'web1';'web3';'web6';'web2';'web4';'web5'};
0
6455 / 4606 / 1904
Регистрация: 02.02.2014
Сообщений: 12,329
18.03.2017, 16:52 20
ну и что?!
под любое количество параметров в списке работает функция size
Цитата Сообщение от faraonCar Посмотреть сообщение
Вас webcamlist задан 3 параметрами
пост 15 посмотрите, хоть там и другая переменная, да суть та же..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2017, 16:52
Помогаю со студенческими работами здесь

Выбрать ссылку каждой картинки в div'e в отдельную переменную
Например в диве с id="content" есть пять картинок, и как в три отдельные переменные...

Как добавить каждый элемент списка в отдельную переменную
Как добавить каждый элемент списка в отдельную переменную, например: list = будет как: x = 1 y...

Прочитать в переменную отдельную вторую или третью строку внешнего txt файла
как прочитать в переменную отдельную вторую или третью строку внешнего txt файла?

Считать в отдельную переменную все цифры идущие подряд после символа _ , пока не встретится символ не являющийся числом
на php Допустим дана строка: aeg28491_30481?353 как мне считать в отдельную переменную все цифры...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru