c#数组基本运算??
两个维数相同的数组a,b,要求各元素相加(或减法,乘法,除法),组成新的数组c,
可不可以直接c=a+b(类似matlab语言)?还是只能遍历各元素相加??
[解决办法]
遍历吧。
[解决办法]
这个得遍历
- C# code
int[] i = {1,2,3,4,5};int[] j = {6,7,8,9,10};int[] k = new int[i.Length];for(int m=0;m<i.Length;m++){ k[m] = i[m] + j[m];}foreach(int n in k){ Response.Write(n.ToString());}
[解决办法]
- C# code
int[] a = { 1, 2, 3 };int[] b = { 4, 5, 6 };int[] result = a.Zip(b, (x, y) => x + y).ToArray(); // result = { 5, 7, 9 }
[解决办法]
矩阵运算时一个数学软件包基本的功能,写成简练的表达式是很符合数学家的习惯的——因为跟数学书上的符号一直。
随便写一个重载+号的例子吧。
- C# code
public class Mat { public double[,] Datas; public static Mat operator +(Mat a, Mat b) { var result = new Mat { Datas = new double[a.Datas.GetLength(0), b.Datas.GetLength(1)] }; for (var i = 0; i < a.Datas.GetLength(0); i++) for (var j = 0; j < b.Datas.GetLength(1); j++) { double sum = 0; for (var k = 0; k < a.Datas.GetLength(1); k++) sum += a.Datas[i, k] * b.Datas[k, j]; result.Datas[i, j] = sum; } return result; } }