Zaloguj się
Blog na Matlablog
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

3 "problemy"
Forum MATLAB Strona Główna-> MATLAB
Post Wysłany: 8 Styczenia 2015, Czw 12:40 pm Temat postu: 3 "problemy" Odpowiedz z cytatem
 
AUTOR:
lotnik



Dołączył: 08 Sty 2015
Posty: 2
Skąd: mazowieckie


Ogląda profil użytkownika Wyślij prywatną wiadomość
Witajcie Smile

Przygotowując laborkę na studia w Matlabie spotkałem się z trzema problemami:

Problem 1

Stworzyłem na jednym rysunku wykresy dwóch funkcji sin i cos

Wygląda to mniej więcej tak (przykład z internetu):
http://www.kkiem.agh.edu.pl/dydakt/matlab/2012/image19.png

I teraz pytanie czy da się tak sformatować oś x aby wartości na niej pokrywały się z wykresem tzn. żeby np wykres cosinusa dotykał osi x w miejscu opisanym 3,14
Dążę do tego aby na osi x mieć taki opis oraz żeby siatka pomocnicza pokrwała się z opisem.
http://2.bp.blogspot.com/-nOr1kGMkCII/UTYk8oS_4xI/AAAAAAAAAPg/E5O1Ny3amwM/s1600/sin+cos.jpg

Chciałbym aby opisy te generowały się automatycznie podczas tworzenia wykresu.
Czy da to się zrobić?

Kod mojego programu:
Kod:
clc
clear all
disp
('Zadanie nr 2')
disp('Program wyświetla na jednym rysunku wykresy funkcji sin(x) i cos(x)')
x=(0:pi/20:pi*2);
sin=sin(x);
cos=cos(x);
plot(x,sin,'r',x,cos,'b')   %atrybuty tabeli
axis
([0 2*pi -1 1])
xlabel('x')
ylabel('f(x)')

text(2.2,0.7,'f(x)=sin(x)')     %podpis wykresu sin
text
(1.2,0.3,'f(x)=cos(x)')     %podpis wykresu cos
title
('Wykres funkcji sin(x) oraz cos(x)')

grid on                         %wyświetla siatkę na wykresie
legend
('sinus(x)','cosinus(x)')



Problem 2 i Problem 3

Mam program:
Kod:
clc
clear all
disp
('Zadanie 1')
disp(' ')
disp('Program do rysowania wykresów wybranej funkcji:')
disp('- sin(x)')
disp('- cos(x)')
disp('- tg(x)')
disp('- ctg(x)')
disp(' ')
f=input('Podaj nazwę funkcji której wykres chcesz wyświetlić: ', 's');

if (~
strcmpi(f,'sin(x)') && ~strcmpi(f,'cos(x)')&& ~strcmpi(f,'tg(x)')&& ~strcmpi(f,'ctg(x)'))
    
disp('Źle wybrana funkcja.')
    
disp(' ')
    
disp('Dostępne funkcje:')
disp('- sin(x)')
disp('- cos(x)')
disp('- tg(x)')
disp('- ctg(x)')
disp(' ')
f=input('Podaj nazwę funkcji której wykres chcesz wyświetlić: ','s');
if (~
strcmpi(f,'sin(x)') && ~strcmpi(f,'cos(x)')&& ~strcmpi(f,'tg(x)')&& ~strcmpi(f,'ctg(x)'))   
    
disp('Źle wybrana funkcja. Następuje zakończenie programu')
    return
end
end
disp
('Podaj wartości liczbowe przedziału funkcji:')
a=input('Od a= ');
b=input('Do b= ');

x=(a:b/1000:b);
switch
f
case 'sin(x)'
tytul='sin(x)';
y=sin(x);
case
'cos(x)'
tytul='cos(x)';
y=cos(x);
case
'tg(x)'
tytul='tg(x)';
y=tan(x);
case
'ctg(x)'
tytul='ctg(x)';
y=cot(x);
grid on                       %wyświetla siatkę na wykresie
otherwise
disp
('Nieoznaczona nazwa funkcji!')
f=input('Podaj nazwę funkcji której wykres chcesz wyświetlić: ', 's');
end

disp
(['Wybrano funkcję: ',tytul,' rysowaną w przedziale od ',num2str(a),' do ',num2str(b)])
plot(x,y)
if(
strcmpi(f,'tg')||strcmpi(f,'ctg'))
ylim([-1 1])                % tutaj możesz ograniczyć wyświetlanie
end
title
(tytul);
xlabel('x')
ylabel('f(x)')


Problem 2
Potrzebuję funkcji która sprawdzi czy podane wartości a i b są liczbami a nie jakimiś przypadkowymi znakami np literami i pokaże komunikat o błędzie oraz każe podać jeszcze raz wartości a i b.

Problem 3
Funkcja która
jeśli a=0 to b nie może być większe równe zero i nakaże podanie jeszcze raz wartości

Siedzę już nad tym trzeci dzień i nic mądrego nie przychodzi mi do głowy. Jeśli chodzi o Problemy 2 i 3 to największy problem mam z logicznym zapisaniem tych warunków.

Potrzebuję rozwiązań do niedzieli, najbardziej zależy mi na Problemie 2 i 3.

Pomóżcie

Pozdrawiam Smile


 

Post Wysłany: 8 Styczenia 2015, Czw 2:01 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
mc2
Może pisać książki


Dołączył: 19 Maj 2009
Posty: 2261


Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
Problem pierwszy można rozwiązać mniej więcej tak:
Kod:
% podpisy osi
set
(gca,'xTick',0:pi/10:2*pi)
set(gca,'xTickLabel',{'0','','','','','','','','','','pi',...
    
'','','','','','','','','','2pi'})
set(gca,'yTick',-1:0.1:1)
set(gca,'yTickLabel',{'-1','','','','','','','','','','0',...
    
'','','','','','','','','','1'})


Problem 2:
http://www.mathworks.com/help/matlab/ref/isnumeric.html

Problem 3:
Użyj while:
Kod:
disp('Podaj wartości liczbowe przedziału funkcji:')
a=input('Od a= ');
%
jeśli a=0 to b nie może być większe równe zero i
% nakaże podanie jeszcze raz wartości
b
=input('Do b= ');
if
a==0 && b>=0
    
while b>=0
        b
=input('Podaj poprawna wartosc b = ');
    
end
end
 

Post Wysłany: 8 Styczenia 2015, Czw 2:30 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
lotnik



Dołączył: 08 Sty 2015
Posty: 2
Skąd: mazowieckie


Ogląda profil użytkownika Wyślij prywatną wiadomość
Dzięki wielkie! Very Happy Ratujesz mi tyłek Smile

Rozwiązanie Problemu 1 i 3 działa bez zarzutu.

Btw. jak spojrzałem na Twój post to okazało się byłem bardzo blisko rozwiązania. Tak blisko a jednocześnie tak daleko Very Happy.

Jeszcze tylko muszę pokminić 2 bo tam zdaje się też trzeba ułożyć jakąś funkcję z wykorzystaniem tego isnumeric?

Dziękuję! Smile


 

Post Wysłany: 27 Marca 2017, Pon 1:15 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
m890



Dołączył: 27 Mar 2017
Posty: 2


Ogląda profil użytkownika Wyślij prywatną wiadomość
O mam podobną laborke teraz dzięki za rozwiązanie problemu



___________________________________
pokewars hack


 

Post Wysłany: 14 Kwietnia 2017, Pią 12:41 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
Kataryna



Dołączył: 14 Kwi 2017
Posty: 1


Ogląda profil użytkownika Wyślij prywatną wiadomość
Podziękować, super sprawa, gdyby nie Ty nie wiem co bym zrobił.


_________________________________
Odzież i obuwie


 

Forum MATLAB Strona Główna-> MATLAB
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 45748493
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
Telewizja online za darmo  (24 Maj 2018, Czw 11:00 pm)
Ja, Godard 2017 Obejrzyj Cały Film Online Lektor PL  (23 Maj 2018, Sro 7:44 pm)
Wykres i widmo zerowej składowej  (23 Maj 2018, Sro 3:09 pm)
(s01e10) Nawiedzona panna młoda 1 Sezon 10 Odcinek Online  (22 Maj 2018, Wto 10:17 pm)
Nawiedzona panna młoda s01e09 transmisja na Ĺźywo  (22 Maj 2018, Wto 10:17 pm)
Nawiedzona panna młoda s01e09 gdzie obejrzeć online?  (22 Maj 2018, Wto 10:16 pm)
(s01e09) Nawiedzona panna młoda 1 Sezon 9 Odcinek Online  (22 Maj 2018, Wto 10:16 pm)
Nawiedzona panna młoda s01e08 gdzie obejrzeć online?  (22 Maj 2018, Wto 10:16 pm)
(s01e08) Nawiedzona panna młoda 1 Sezon 8 Odcinek Online  (22 Maj 2018, Wto 10:15 pm)
(s01e07) Nawiedzona panna młoda 1 Sezon 7 Odcinek Online  (22 Maj 2018, Wto 10:15 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum