Objective-C中的矩阵



在Objective-C中有任何支持矩阵的类吗?我所说的矩阵是指二维数组。

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

我也尝试在彼此(matrix[][])中使用c风格的数组,但这种方法不适合我的应用程序,因为我不能自动@synthesize或为它们指定@properties

我当然可以为此创建我自己的类,但我想知道的是Objective-C是否已经有了针对这种情况的东西。我在谷歌上查了一下,但是什么也没找到。

不,Foundation没有任何2D数组类。就数学计算而言,出于可移植性和性能的考虑,矩阵通常是用C或c++实现的。如果你真的需要的话,你必须自己写一个类。

obj-c似乎没有自己的矩阵结构。我参考了iOS SDK的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;

为三维变换矩阵。

来得太晚了,但我想提一下这个项目,它实现了一个基于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或使用一些非甜蜜的语法:[MyArray objectAtIndex:i*d+j]]。后一种情况确实很麻烦,因为您只会得到一种笨拙的枚举器。

相关内容

  • 没有找到相关文章

最新更新