PDA

View Full Version : محاسبه فاصله اقلیدسی داده های دو فایل



comengineering
دوشنبه 18 بهمن 1395, 13:02 عصر
با سلام
چطور می تونم داده های هر سطر از یک فایل را با داده های هر سطر از یک فایل دیگر ، فاصله اقلیدسی را حساب کرده و در یک فایل دیگر ذخیره کنم ؟
ممنون می شم راهنمایی کنید.

336699
دوشنبه 18 بهمن 1395, 16:18 عصر
با سلام
چطور می تونم داده های هر سطر از یک فایل را با داده های هر سطر از یک فایل دیگر ، فاصله اقلیدسی را حساب کرده و در یک فایل دیگر ذخیره کنم ؟
ممنون می شم راهنمایی کنید.

سلام

الان مشکل شما محاسبه فاصله اقلیدسی و منهتن هستش یا ذخیره پاسخ در یک فایل دیگر :متفکر:

اگر در محاسبه فاصله اقلیدسی و منهتن مشکل دارید ، این سوال مربوط به ریاضیات میشه نه برنامه نویسی .

hamid_hr
دوشنبه 18 بهمن 1395, 17:02 عصر
https://fa.wikipedia.org/wiki/%D9%81%D8%A7%D8%B5%D9%84%D9%87_%D8%A7%D9%82%D9%84% DB%8C%D8%AF%D8%B3%DB%8C

با این فرمول فاصله اقلیدوسی بدست میاد
https://wikimedia.org/api/rest_v1/media/math/render/svg/09c212ae140df5db0f4e9c2fbd4b56eed76475a8
مثلا در فایل اول داریم
5 8
در فایل دوم داریم
6 7
فاصله اقلیدوسی این سطر از فایلها میشه

Math.Sqrt(Math.Pow((5 - 6), 2) + Math.Pow((8 - 7), 2));
که برابر است با 1.4142135623730952

comengineering
سه شنبه 19 بهمن 1395, 13:07 عصر
این برنامه رو نوشتم ولی کار نمی کنه مشکل من در برنامه نویسی است نه ریاضی.
چهار تا عدد از تکست باکس خوانده می شود و بعد با داده های فایل فاصله اقلیدسی گرفته می شه . خطای خارج از محدوده آرایه می ده . فایلش 178 تا سطر داره و چهارتاستون . داده ها هم اعداد اعشاری هستند. نتیجه هم در آرایه ای با 178 سطر و یک ستون ذخیره می شه.

double[,] cal = new double [178,1];
double sum=0.0;
double t1= double.Parse(textBox1.Text);
double t2 = double.Parse(textBox2.Text);
double t3 = double.Parse(textBox3.Text);
double t4= double.Parse(textBox4.Text);
double[] inputArr = new double[4] {t1,t2,t3,t4};
for(int i=0;i<=177;i++)
{
for(int j=0;j<=3;j++)
{
sum =sum+ ((inputArr[j] - setosaArr[i, j]) * (inputArr[j] - setosaArr[i, j]));
}
cal[i,0]= Math.Sqrt(sum);
}