Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Двадцать вторая
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 13
1

Заменить первый и последний ненулевые элементы вектора на среднее геометрическое его положительных элементов

17.11.2015, 00:37. Просмотров 714. Ответов 7
Метки нет (Все метки)

Как найти среднее геометрическое - это понятно, а вот как найти эти два ненулевых элемента и обратиться к ним - не очень.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2015, 00:37
Ответы с готовыми решениями:

Заменить первый и последний нулевые элементы вектора на среднее геометрическое его положительных элементов
Очень сильно нужна помощь, задание звучит следующим образом: "Поменять местами первый и последний...

Заменить элементы вектора, отличающиеся от среднего геометрического его элементов
Заменить элементы вектора, отличающиеся от среднего геометрического его элементов % более чем на...

Заменить все минимальные элементы вектора максимальным значением его элементов
1. выделить в новый вектор элементы вектора с четными номерами номерами 2. заменить все...

Заменить все минимальные элементы вектора максимальным значением его элементов
все правильно? clear clc a=20*rand(1,5) Amax=max(a) Amin=min(a) for i=1:length(a) if...

Как удалить из массива элементы, которые превосходят среднее геометрическое значение его положительных элементов
Привет вам, гуру бейсика! Дело в том, что я вообще не знаю, чтодакак в этом бейсике, а зачёт нужен...

7
Centurio
Модератор
947 / 874 / 247
Регистрация: 13.09.2015
Сообщений: 3,056
17.11.2015, 00:54 2
Matlab M
1
2
3
4
5
x=randi([-5 5],1,20);
f=find(x~=0);
k=[f(1) f(end)];
S=nthroot(prod(x(k)),length(k));
x(k)=S;
1
Двадцать вторая
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 13
17.11.2015, 19:57  [ТС] 3
Спасибо!
А если сделать так же, только с нулевыми элементами?
Я написала такую функцию:
Matlab M
1
2
3
4
5
6
7
8
9
10
function b = vectors1( a )
vec1=a(a>0);
res=(prod(vec1))^(1/(length(vec1)));
%vec2=a(a==0);
f=find(a==0);
k=[f(1) f(end)];
a(k)=res;
 
 
end
и еще файл-сценарий
Matlab M
1
2
3
4
5
6
clear
clc
 
a=input('Введите вектор a:');
a = str2num(a);
b=vectors1(a);
Но когда ввожу вектор, выдает ошибку : Unexpected MATLAB expression.
Что я делаю в этой жизни не так? (mathlab пока первый раз в жизни вижу, но пытаюсь разобраться, объясните чайнику
0
Centurio
Модератор
947 / 874 / 247
Регистрация: 13.09.2015
Сообщений: 3,056
17.11.2015, 20:27 4
Двадцать вторая, Вы вектор а в символьном виде вводите? Если в обычном числовом, то строку a = str2num(a); надо убрать.
В теле функции вы не присвоили самой функции выходное значение. Последняя строка перед end должна быть b=a
0
Двадцать вторая
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 13
17.11.2015, 20:52  [ТС] 5
Как я должна тогда вводить значения с клавиатуры, через пробел:?

Добавлено через 5 минут
Элементы вектора у меня в числовом виде, но с клавиатуры они разве не символьные по умолчанию?
0
Centurio
Модератор
947 / 874 / 247
Регистрация: 13.09.2015
Сообщений: 3,056
17.11.2015, 22:00 6
Цитата Сообщение от Двадцать вторая Посмотреть сообщение
Как я должна тогда вводить значения с клавиатуры, через пробел:?
Да, и в квадратных скобках.
Цитата Сообщение от Двадцать вторая Посмотреть сообщение
Элементы вектора у меня в числовом виде, но с клавиатуры они разве не символьные по умолчанию?
Нет, по умолчанию они в формате double. Для строкового формата они должны вводиться в апострофах либо перед вводом их нужно объявить символьными.
1
Зосима
5042 / 3391 / 340
Регистрация: 02.04.2012
Сообщений: 6,313
Записей в блоге: 16
Завершенные тесты: 1
18.11.2015, 12:52 7
Цитата Сообщение от Двадцать вторая Посмотреть сообщение
Как я должна тогда вводить значения с клавиатуры
пишешь так:
Matlab M
a=input('Введите вектор a: ','s');
a = str2num
видишь 's' вконце input-a? это означает, что данные воспринимаются как строковые константы.
Вводить можно через пробел или запятую

*а не проще ли сразу написать какой-нить массив, без ручного ввода или рандомный на крайний случай?
1
Двадцать вторая
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 13
18.11.2015, 16:19  [ТС] 8
Проще, но ручной ввод - интереснее же

Спасибо )
0
18.11.2015, 16:19
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2015, 16:19

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

Ввести одномерный массив А, вывести его. Вычислить среднее геометрическое положительных элементов массива
Ввести одномерный массив A , вывести его. Вычислить SRG-среднее геометрическое положительных...

Ввести одномерный массив A, вывести его. Вычислить SRG-среднее геометрическое положительных элементов массива.
Ввести одномерный массив A , вывести его. Вычислить SRG-среднее геометрическое положительных...

Найти первый минимальный элемент (и его номер) среди положительных элементов вектора
Дан вектор A . Найти первый минимальный элемент (и его номер) среди положительных элементов вектора.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.