Robię tabelaryzację pewnej funkcji. Mam 3 zmienne po 100 wartości. Teraz jak rozpisać wszystkie możliwe kombinacje tych 3 zmiennych. Ręcznie to zajmie dużo czasu. Czy można to w jakiś łatwy sposób zrobić za pomocą exala lub matlaba?
trochę nietypowy problem
Oct 11, 2005
4 Replies
skasuj napisał(a):
W matlabie (Jezu, to już 10 lat temu) żaden problem bo do tego służy definiujesz macierz trójwymiarową argumentów i już W excelu to może być kłopot, bo to z założenia tabela dwuwymiarowa Romek
Napisz coś jaśniej to może coś się wymyśli. Ja bym spróbował w excelu lub bardzo stram programie, który potrafi znaleźć funkcję na podstawie danych - program ten to "grapher".
Jacek "Plumpi"
...
Jeśli dobrze zrozumiałem chcesz wypisac wszystkie kombinacje tych 3 zmiennych? Jeśli tak to można napisać prościutki programik np w C++ coś na wzór takiego:
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
int main() { ofstream plik; int menu=0; do{ cout<<"\n Kombinacje\n"; cout<<"\n Program zapisuje na dysku wszystkie kombinacje 3 zmiennych w podanym zakresie\n dla liczb calkowitych\n\n"; cout<<"\n Menu:\n 1. Dla 3 zmiennych x y z\n 2. Wyjscie\n\n Wybor: "; cin>>menu; plik.open("kombin.txt");
switch(menu){ case 1://kombinacje x y z int ilx,ily,ilz; cout<<"\n Podaj ilosc x: "; cin>>ilx; cout<<"\n Podaj ilosc y: "; cin>>ily; cout<<"\n Podaj ilosc z: "; cin>>ilz; plik<<"x y z :::: ilosc kombinacji= "<<ilx*ily*ilz<<"\n"; int x,y,z; x=ilx;y=ily;z=ilz; for(x;x>0;x--){ for(y;y>0;y--){ for(z;z>0;z--){ plik<<x<<" "<<y<<" "<<z<<"\n"; } z=ilz; } y=ily; } break; } }while(menu!=2); plik.close(); system("PAUSE"); return 0; }
w exelu to też nie byłby wielki problem, gdyby nie to, że tablice excela są tylko 256 kolumn x 65536 wierszy. Tu masz 1000000 wierszy, więc wziąłbym matlaba. Na przykład coś takiego:
function pisz(x,y,z) % x, y, z to twoje zmienne o wymiarze 100 % jak do zbioru to: % fd = fopen('zbiór.txt', 'w'); for i=1:100 for j = 1:100 for k = 1:100 fprintf('%f\t%f\t%f\n', x(i), y(j), z(k)); % fprintf(fd, '%f\t%f\t%f\n', x(i), y(j), z(k)); % jak do zbioru end end end
ino to będzie dość duże :-)
Waldek
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required