Objective-C中的矩阵

Objective-C中的矩阵,objective-c,multidimensional-array,matrix,Objective C,Multidimensional Array,Matrix,在Objective-C中是否有矩阵支持类?我所说的矩阵是指二维阵列 我现在所做的是使用2个NSArrays,一个在另一个中。这工作得很好,但我的代码看起来一团糟 我还尝试在彼此之间使用C样式的数组(matrix[][]),但这种方法不适合我的应用程序,因为我无法自动合成@synthesis或为它们指定@properties) 我当然可以为此创建自己的类,但我想知道的是Objective-C是否已经为这种情况提供了一些功能。我做了一些谷歌调查,但没有发现任何东西。我认为您需要对NSArray进行

在Objective-C中是否有矩阵支持类?我所说的矩阵是指二维阵列

我现在所做的是使用2个
NSArray
s,一个在另一个中。这工作得很好,但我的代码看起来一团糟

我还尝试在彼此之间使用C样式的数组(
matrix[][]
),但这种方法不适合我的应用程序,因为我无法自动合成
@synthesis
或为它们指定
@properties


我当然可以为此创建自己的类,但我想知道的是Objective-C是否已经为这种情况提供了一些功能。我做了一些谷歌调查,但没有发现任何东西。

我认为您需要对NSArray进行子类化或使用一些非甜语法:[
MyArray objectAtIndex:I*d+j]
。后一种情况很麻烦,因为你只会得到一个笨拙的枚举器。

不,基金会没有任何2D数组类。就数学计算而言,为了便于携带和性能原因,通常在C或C++中实现矩阵。如果您真的需要,您必须为此编写自己的类。

似乎obj-c没有自己的矩阵结构。我参考了iOS SDK的CATTransform3D,发现它使用:

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变换矩阵。

晚会晚了,但我想提一下,它实现了一个基于C数组的灵活矩阵类,具有许多BLAS和LAPACK函数的接口。免责声明:我是开发者

基本用途如下:

YCMatrix *I = [YCMatrix identityOfRows:3 Columns:3];
double v = [I getValueAtRow:1 Column:1];
[I setValue:0 Row:0 Column:0];

当您可以提供自己的存储时,您应该只将NSArray子类化。我的目标是使用坐标(比如x和y)访问它。无论如何,谢谢你的回答。