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

Как сделать красиво, если не нравятся похожие строки кода?)

29.11.2014, 15:55. Просмотров 271. Ответов 2
Метки нет (Все метки)

Доброго времени суток!

Опишу то, что я делаю и что мне бы хотелось сделать.
У меня есть результат численного интегрирования системы оду программой, написанной на языке фортран. Эта программа записывает результат в файл .txt, из которого я затем импортирую данные в матлаб. Дело в том, что необходимо построить график от параметров, которые входят в коэффициенты системы оду, поэтому у меня появляется 15 переменных, которые представляют из себя матрицы 501*4 >.<
Для обработки результатов написала файл-функцию, в которую поочередно передаю данные, а на выходе получаю то, что нужно)) всё работает, всё хорошо, но в результате получилось 15 похожих друг на друга строк (и это мне не нравится).

Вот вопрос в том, можно ли как-то сделать код более "красивым", например, создать что-то вроде массива указателей на эти переменные и уже в цикле обрабатывать данные.
Да и вообще стоит ли заморачиваться по такому поводу?)
Надеюсь, все более менее ясно рассказала)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2014, 15:55
Ответы с готовыми решениями:

Убрал фон фотографии, но не нравятся ее края. Как их красиво сделать?
Убрал фон фотографии, но не нравятся ее края. Как их красиво сделать?

Как сделать красиво?
Как реализовать красиво и удобно функционал string to enum ( чтобы по стрингу брать элемент из...

Как сделать более красиво?)
дана программа которая создает матрицу 2х2 и передвигает каждое значение по часовой стрелке на 1...

GET параметры... как сделать красиво?
Я на сайте сделал так: site.ru/index.php?page=shop&amp;par1=1&amp;par2=2&amp;par3=3 кол-во параметров может...

Похожие новости- как сделать скрины?
Всем привет! как правильно сделать отображение картинок в &quot;похожих новостях? так как показано на...

2
Krasme
4314 / 3205 / 1190
Регистрация: 02.02.2014
Сообщений: 8,665
29.11.2014, 16:01 2
Цитата Сообщение от Bubo4ka Посмотреть сообщение
все более менее ясно рассказала
более-менее ясно станет при просмотре ваших файлов и кодов..
0
Bubo4ka
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 3
29.11.2014, 16:09  [ТС] 3
Хорошо
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
clear all
close all
clc
 
load('data_fortran.mat'); %подключение файла с данными
global r2
r2 = 70; r1 = 27.5;
mu = [0.49 0.47 0.45];
h = [9 12 15 18 21];
k = zeros(3,5);
P = zeros(3,5);
 
P(1,1) = p_ravno(h9mu049, ro, h(1), mu(1)); 
P(2,1) = p_ravno(h9mu047, ro, h(1), mu(2));
P(3,1) = p_ravno(h9mu045, ro, h(1), mu(3));
 
P(1,2) = p_ravno(h12mu049, ro, h(2), mu(1));
P(2,2) = p_ravno(h12mu047, ro, h(2), mu(2));
P(3,2) = p_ravno(h12mu045, ro, h(2), mu(3));
 
P(1,3) = p_ravno(h15mu049, ro, h(3), mu(1));
P(2,3) = p_ravno(h15mu047, ro, h(3), mu(2));
P(3,3) = p_ravno(h15mu045, ro, h(3), mu(3));
 
P(1,4) = p_ravno(h18mu049, ro, h(4), mu(1));
P(2,4) = p_ravno(h18mu047, ro, h(4), mu(2));
P(3,4) = p_ravno(h18mu045, ro, h(4), mu(3));
 
P(1,5) = p_ravno(h21mu049, ro, h(5), mu(1));
P(2,5) = p_ravno(h21mu047, ro, h(5), mu(2));
P(3,5) = p_ravno(h21mu045, ro, h(5), mu(3));
 
P_0 = -(1+mu).*(pi*(1-(r1/r2)^2));
k(1,:) = (1/P_0(1)).*P(1,:);
k(2,:) = (1/P_0(2)).*P(2,:);
k(3,:) = (1/P_0(3)).*P(3,:);
 
set(0,'DefaultAxesFontSize',12,'DefaultAxesFontName','Times New Roman');
Line_type={'b','r','g'};
for i = 1:1:3
    s(i) = plot(r2./h, k(i,:),'ko-');
    hold on
    set(s(i),'color',Line_type{i},'LineWidth',2)
    name{i}=['\mu=',num2str(mu(i))];
end
grid on 
title('Коэффициент ужесточения')
xlabel('r_2/h')
ylabel('k')
legend(name)
И файл-функция

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function P = p_ravno (h00_mu000, ro, h, mu)
global r2;
beta = mu/(1-2*mu);
%Перемещения при s=0
%радиальные
%u = h00_mu000(:,2);
%при s=0 осевые перемещения равные нулю
%Найдем деформации и напряжения при s=0
eps_r = h/r2.*h00_mu000(:,3);
eps_t = h/r2.*h00_mu000(:,4)./ro;
eps_z = -1+2.*h00_mu000(:,2);
%Объемная деформация
eps_0 = eps_r + eps_t + eps_z;
%Осевое напряжение при s=0
sigma_z = eps_z + beta.*eps_0;
%Из уравнения равновесия части элемента шайбы определяем силу
P = 2*pi*trapz(sigma_z.*ro)*0.001;
end
Не нравятся строки 13-31 в основной программе) Переменные с именами типа "h9mu049" и есть эти матрицы) Буду рада и другим замечаниям)
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2014, 16:09

В зависимости от ответа на экране должен появиться текст «Мне нравятся девочки!» или «Мне нравятся мальчики!».
Программа — льстец. На экране высвечивается вопрос «Кто ты: мальчик или девочка? Введи Д или М». В...

Laravel 5 ООП как сделать просто и красиво
Всем привет! Делаю биллинг на laravel и php, раньше с фреймворками не работал, с ООП безсистемно....

Как сделать красиво и правильно? ООП + PHP + MySQL
В одной из функций класса производится подключение к БД. Возможно ли реализовать что-то...


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

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

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