Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Korag
0 / 0 / 0
Регистрация: 18.04.2013
Сообщений: 5
1

Округление до заданных чисел

13.11.2017, 22:48. Просмотров 279. Ответов 5

Здравствуйте. Можете подсказать как в матлабе сделать округление до заданных мною чисел?
Например, у меня есть расчётная продолжительность включения. Мне её нужно округлить до стандартного ряда (15%, 25%, 40%, 60%).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2017, 22:48
Ответы с готовыми решениями:

Округление чисел
Такой вопрос, скажите можно ли округлить след. числа:...

Округление чисел
Допустим,имеется число с тремя знаками после запятой,а достаточно точности,если...

Как убрать округление чисел
Здравствуйте, подскажите пожалуйста, как убрать округление чисел? В работе...

Как отключить округление чисел на графике
Здравствуйте, когда строю график на осях округленные числа, типа 1.4454 *10^15,...

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

5
Centurio
Модератор
761 / 695 / 199
Регистрация: 13.09.2015
Сообщений: 2,475
14.11.2017, 06:51 2
Цитата Сообщение от Korag Посмотреть сообщение
округление до заданных мною чисел
Что значит "до заданных чисел"? Можно округлить до определённого количества цифр. Опишите проблему полнее и детальнее.
0
Korag
0 / 0 / 0
Регистрация: 18.04.2013
Сообщений: 5
14.11.2017, 09:13  [ТС] 3
Надо, чтобы, допустим, число 16 округлялось до 15, 21 - до 25, 26 - тоже до 25. На выходе хочется получить только стандартные значения (15%, 25%, 40%, 60%).
0
SSC
Эксперт по математике/физике
2707 / 1433 / 419
Регистрация: 09.04.2015
Сообщений: 3,946
14.11.2017, 11:33 4
Вот вариант функции

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function testFUN
clear all;clc;close all;
fix=[15 25 40 60];
x=[16 21 18 50];
rez=F_okruglenie(x,fix)
end
function rez=F_okruglenie(x,fix)
    n=length(x);
    rez=zeros(1,n);
    fix=sort(fix,'descend');
    for i=1:n
        y=abs(fix-x(i));
        [~, iymin] = min(y);
        rez(i)=fix(iymin);
    end   
end
0
Centurio
Модератор
761 / 695 / 199
Регистрация: 13.09.2015
Сообщений: 2,475
14.11.2017, 19:09 5
Вариант без цикла:
Matlab M
1
2
3
4
5
6
clear,clc
fiks=[15 25 40 60];
x=[16 21 18 50];
[F,X]=meshgrid(fiks,x);
[~,n]=min(abs(F-X),[],2);
rez=fiks(n')
0
Korag
0 / 0 / 0
Регистрация: 18.04.2013
Сообщений: 5
14.11.2017, 21:29  [ТС] 6
Спасибо большое
0
14.11.2017, 21:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2017, 21:29

Округление
Кто-нибудь может помочь в написании программы. Допустим есть 120540 отсчетов,...

Округление
Здравствуйте! Подскажите, пожалуйста, как в МАТЛАБе округлять число до десятых,...

Округление
По задаче необходимо для отношения двух переменных подобрать константу....


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

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

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