本文整理汇总了C#中DObject.set方法的典型用法代码示例。如果您正苦于以下问题:C# DObject.set方法的具体用法?C# DObject.set怎么用?C# DObject.set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DObject
的用法示例。
在下文中一共展示了DObject.set方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SLAU
/// <summary>
/// Решение системы линейных алгебраических уравнений
/// </summary>
public DObject SLAU()
{
if (sx != sy + 1) return null;
DObject ret = new DObject(sy, 1);
for (int i = 0; i < sy; i++)
{
int k = i;
while (get(i, i) == 0)
{
if (!swapLineInner(i, k++)) return null;
}
multLineInner(i, 1/get(i,i));
for (int j = 0; j < sy; j++)
{
if (i == j) continue;
addLineInner(j, i, -get(i, j));
}
}
for (int i = 0; i < sx; i++) ret.set(i, 0, get(sx-1, i));
return ret;
}
示例2: Transpon
/// <summary>
/// Транспонирование
/// </summary>
public DObject Transpon()
{
DObject ret = new DObject(sy, sx);
for (int i = 0; i < sx; i++)
{
for (int j = 0; j < sy; j++)
{
ret.set(j, i, get(i, j));
}
}
return ret;
}
示例3: Normalize
/*** Приведение матрицы вида {X,Y,Z} к виду {X/Z, Y/Z, 1} ***/
public bool Normalize()
{
try
{
DObject ret = new DObject(this);
for (int i = 0; i < sy; i++)
{
double n = get(sx - 1, i);
if (n == 1) continue;
else ret.set(sx - 1, i, 1);
for (int j = 0; j < sx - 1; j++) ret.set(j, i, get(j, i) / n);
}
clone(ret);
return true;
}
catch
{
return false;
}
}
示例4: Mult
/*** Умножение на матрицу dobj ***/
public DObject Mult(DObject dobj)
{
if ((sx == 0) || (sx != dobj.sy)) return null;
DObject ret = new DObject(dobj.sx, sy);
for (int i = 0; i < dobj.sx; i++)
{
for (int j = 0; j < sy; j++)
{
double r = 0;
for (int k = 0; k < sx; k++)
{
r += get(k, j) * dobj.get(i, k);
}
ret.set(i, j, r);
}
}
return ret;
}
示例5: Invert
/// <summary>
/// Получение обратной матрицы
/// </summary>
public DObject Invert()
{
if (sx != sy) return null;
DObject ret = new DObject(sx, sy);
for (int i = 0; i < sx; i++)
{
DObject dmx = new DObject(sx + 1, sy);
for (int i0 = 0; i0 < sy; i0++)
{
for (int j0 = 0; j0 < sx; j0++) dmx.set(j0, i0, get(j0, i0));
dmx.set(sx, i0, (i == i0 ? 1 : 0));
}
DObject res = dmx.SLAU();
for (int j = 0; j < sy; j++) ret.set(i, j, res.get(j, 0));
}
return ret;
}
示例6: fread
/*** Создание объекта из файла ***/
public bool fread(string path)
{
// Считали файл, убрали пробелы, разбили на массив построчно
System.IO.StreamReader fs = new System.IO.StreamReader(path);
string content = fs.ReadToEnd().Replace(".", ",");
while (content != content.Replace(" ", " ")) content = content.Replace(" ", " ");
while (content != content.Replace("\t", " ")) content = content.Replace("\t", " ");
string[] strs = content.Split("\r\n".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries);
fs.Close();
// Создали возвращаемый объект, заполнили поля размера по х и у
DObject ret = new DObject();
ret.sy = strs.Length;
ret.sx = 0;
// создали матрицу для хранения значений массива в строках
string[][] ss = new string[ret.sy][];
int i = 0;
System.Array.ForEach<string>(strs, delegate(string str)
{
ss[i] = str.Split(" ".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries);
if (ret.sx < ss[i].Length) ret.sx = ss[i].Length;
i++;
});
//Заполнили ret.matrix и вернули true
ret = new DObject(ret.sx, ret.sy);
for (i = 0; i < ret.sy; i++)
{
for (int j = 0; j < ret.sx; j++)
{
ret.set(j, i, double.Parse(ss[i][j]));
}
}
clone(ret);
return true;
}
示例7: Spline
/// <summary>
/// Increase sample rate of input array in Acceleration times using 3-Spline
/// </summary>
public static float[] Spline(float[] Data, int Offset, int Length, int Acceleration)
{
//PointF[] gpts = points.ToArray();
int n = Length, ndec = n - 1;
DObject d = new DObject(3 * n - 2, 3 * ndec);
// Заполнение первого условия, количество точек - 2*(n-1)
for (int i = 0; i < ndec; i++)
{
int i2 = i << 1, i3 = i2 + i;
float _x = Offset + i;
d.set(i3, i2, _x * _x);
d.set(i3 + 1, i2, _x);
d.set(i3 + 2, i2, 1);
d.set(3 * ndec, i2, Data[(int)_x]);
_x++;
i2++;
d.set(i3, i2, _x * _x);
d.set(i3 + 1, i2, _x);
d.set(i3 + 2, i2, 1);
d.set(3 * ndec, i2, Data[(int)_x]);
}
// Второе условие, количество точек - n-2
// 2a1x1 + b1 = 2a2x1 + b2
// 2a2x2 + b2 = 2a3x2 + b3
// ...
for (int i = 0, i3 = 0, delta = 2 * ndec;
i < n - 2;
i++, i3 += 3, delta++)
{
float _x = (Offset + i + 1) * 2;
d.set(i3, delta, _x);
d.set(i3 + 1, delta, 1);
d.set(i3 + 3, delta, -_x);
d.set(i3 + 4, delta, -1);
}
// Третье условие
int del = 3 * n - 4;
d.set(0, del, 2 * Offset);
d.set(1, del, -1);
DObject coeff = new DObject(d).SLAU();
if (coeff == null)
{
del = 6 * n - 9;
d.set(0, del, (n << 1) - 2);
d.set(1, del + 1, -1);
coeff = new DObject(d).SLAU();
}
if (coeff == null) return null;
float[] ret = new float[ndec * Acceleration];
int k = 0;
float dAcc = 1.0F / (Acceleration - 1);
for (int i = 0; i < n - 1; i++)
{
ret[k++] = Data[Offset + i];
int i3 = 3 * i;
//ret.Add(gpts[i].toPoint());
double _a = coeff.get(i3, 0);
double _b = coeff.get(i3 + 1, 0);
double _c = coeff.get(i3 + 2, 0);
for (int j = 1; j < Acceleration - 1; j++)
{
//double _x = i + j * 3;
//int _x = i * Acceleration + j;
double _x = Offset + i + j * dAcc;
ret[k++] = (float)((_a * _x + _b) * _x + _c);
}
}
ret[k] = Data[Offset + ndec];
return ret;
}