Objective-C中是否有Matrix支持类?按矩阵我的意思是2D阵列。
我现在所做的是使用2 NSArray
,一个在另一个内。这很好用,但我的代码看起来很乱。
我还试图在彼此之间使用C风格的数组(matrix[][]
),但这种方法不适合我的应用程序,因为我不能自动@synthesize
或指定@properties
它们。
我当然可以为此创建自己的类,但我想知道的是,Objective-C是否已经为这种情况提供了一些东西。我做了一些谷歌研究,但没有找到任何东西。
答案 0 :(得分:4)
Nope,Foundation没有任何2D数组类。就数学计算而言,由于可移植性和性能原因,矩阵通常用C或C ++实现。如果你真的需要的话,你必须为此编写自己的课程。
答案 1 :(得分:1)
似乎obj-c没有自己的矩阵结构。我提到了iOS SDKs CATransform3D,发现它使用:
struct CATransform3D
{
CGFloat m11, m12, m13, m14;
CGFloat m21, m22, m23, m24;
CGFloat m31, m32, m33, m34;
CGFloat m41, m42, m43, m44;
};
typedef struct CATransform3D CATransform3D;
作为3D变换矩阵。
答案 2 :(得分:1)
晚会,但我想提一下this project,它实现了一个基于C数组的灵活Matrix类,具有许多BLAS和LAPACK函数的接口。 免责声明:我是开发人员。
基本用法如下:
YCMatrix *I = [YCMatrix identityOfRows:3 Columns:3];
double v = [I getValueAtRow:1 Column:1];
[I setValue:0 Row:0 Column:0];
答案 3 :(得分:-2)
我认为你需要继承NSArray或使用一些非甜蜜的语法:[MyArray objectAtIndex:i*d+j]
。后一种情况真的很麻烦,因为你只会得到一种笨拙的调查员。