Tag: 矩阵

循环矩阵的列

我有一个问题,就是要求我循环次数为MxN矩阵的Z列。 我目前的代码如下,但是当我运行它时,一些列会消失。 我的代码应该将第一列移动到第二列,将第二列移动到第三列等,然后将最后一列移动到第一列。 int first[5][5], second[5][5], i, j; int temp[5][5]; for(i = 0; i < 5; i++){ for(j = 0; j < numprocs; j++){ temp[i][j] = second[i][j]; second[i][j] = second[i–][j]; second[i++][j] = temp[i][j]; } }

使用指针打印方形矩阵

我已经浏览过以前回答有关指针和矩阵的问题,但在这些情况下,矩阵被视为指针的指针。 但是,我试图创建一个函数,它使用一个简单的指针和另一个打印它的函数读取矩阵。 这是我的代码,读取function似乎工作正常,但程序在打印部分崩溃。 如果我从printf语句中删除“*”程序的工作原理(即它打印4到4的数字,我想这没关系,因为int存储在4个字节上)。 void readm(int *p,int n) { p=(int *)malloc(sizeof(int)*n*n); for(int i=0;i<n*n;i++) scanf("%d",p+i); } void printm(int *p,int n) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) printf("%d ",*(p+(i*n)+j)); printf("\n"); } }

如何计算C中矩阵行中的元素数量

使用整数数组,Id喜欢首先向用户询问他想要在数组中的行数和列数(让我们称之为x和y)(我知道如何执行此步骤)。 重要的是,当用户输入将存储在矩阵中的值时,将从一行输入读入一行,从第二行输入读入第二行,依此类推。 所以一行输入= 1行。 因此,如果他已经定义了x个列,他应该为第一行输入x个数字,所有这些都在一行上。 如何检查x号码是否确实已输入线路? 如果输入的内容越来越少,我将打印错误消息。 是否有某种命令可以检查1行的大小,以便它可以根据用户定义的x进行检查? 到目前为止我编写的代码涉及简单的步骤,但我对如何实现此检查几乎没有任何想法,以确认用户输入的数量与他最初定义的输入量相同。 非常感谢!

指向2darrays和手动内存管理的指针 – C.

我认为在纯C中构建一个处理各种矩阵计算的库是一个很好的挑战。现在,尽管我对Objective-C和Cocoa有一些非常好的经验,但我对C的知识才是我需要的。使用Objective-C而不是更多。 所以,例如,我熟悉C中指针,数组等的概念,但不熟悉malloc和free(ARC是幸福!)。 我决定接受这个项目,这样我就可以获得更多的C体验(当然,除了有很多乐趣之外!)。 到目前为止,我有一个像这样定义的矩阵: typedef float mReal; typedef struct { mReal **v; int w; int h; } matrix; 当然,我还需要一种方法来为我提供一个我想要的全新矩阵: void new_matrix(matrix *m, int w, int h) { m = malloc(sizeof(matrix)); m->w = w; m->h = h; m->v = malloc(w * sizeof *(m->v)); for (int i = 0; i v[i] = malloc(h * sizeof *(m->v[i])); } […]

我需要从一个我们不知道矩阵尺寸的文件中读取矩阵

我有这样的结构 struct Data { int ID; double test_sample[2065][1]; int XX_row; int XX_col double **XX; //size=[2065][changing] double **alpha_new; //size=[changing][1] int alpha_new row; int alpha_new_col; double t3; double kernel_par; }person[20]; 我使用fwrite为每个人(20人)写了这个结构到20个文件: fwrite(&person, sizeof( struct Data ), 1,Ptr ); 现在我有20个二进制文件。 每个文件包含一个人的这些变量。 一切都好了。 问题:由于在每个文件中, XX和alpha_new矩阵的维度不同 ,我无法读取文件并将其识别为敲击文件。 (在文件[2065] [8]中,其中一些[2065] [12]) 我需要使用fread (或不同的)读取这些变量并输入到人脸识别程序……有没有办法在文件中单独读取变量或者我是否应该更改写入方法? 我不知道如何在不使用struct的情况下将所有变量矩阵写入一个文件中! 我希望我能在这里解释我的问题,抱歉我的英语不好,我等着你的帮助完成我在c的最后项目; 我正在使用visual studio 2012

哈希函数到矩阵

我有两个矩阵,我需要比较它们,但我不想比较位置,我认为这不是最好的方法。 我想到哈希函数,有谁知道如何计算矩阵的哈希值?

计算矩阵产品AXA’的有效方法?

我目前正在使用BLAS函数DSYMM计算Y = AX然后使用DGEMM计算YA’ ,但我想知道是否有一些更有效的方法来计算矩阵乘积AXA T ,其中A是任意n×n矩阵和X是一个对称的n×n矩阵?

缓存友好的矩阵移位function

我想将2D方阵的第一行移到最后一行。 所以如果我有像A这样的矩阵,我想得到B. 我可以使用两个简单的for循环来做到这一点。 例如 void shift(int M, int N, int A[M][N]){ int i, j,temp; for (i = 1; i < M; i++){ for (j = 0; j < N; j++){ temp=A[i][j]; A[i][j]=A[i-1][j]; A[i-1][j]=temp; } } } 但我希望尽可能少地缓存未命中数。 有关如何做到这一点的任何提示?

Matrix转换从Java移植到C,不兼容的类型问题

我必须在C中移植一些Java方法,有一个Java背景但我在C编程中是一个总的菜鸟 在java中 float[][] traspose(float Xy[][]) { float result[][]=new float[5000][3000]; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { result[i][j] = Xy[j][i]; } } return result; } 我的C移植尝试 float traspose(int m, int n, float Xy[m][n]) { int i,j; float result[5000][3000]; for(i = 0; i < m; i++) […]

Lua C API:在结构C中初始化变量矩阵

我正在尝试使用Lua C API创建一个userdata,其中有一个metatable关联,我将收集一个矩阵。 我不能得到的是如何将初始化矩阵的每个分量设置为零。 我正如我在此描述的那样编译我的Lua模块C代码。 我的C代码如下: #include “lauxlib.h” #include “lua.h” typedef struct { LUA_NUMBER data[1][1]; int row; int col; }matrix; // Create a matrix full of zeros static int lb_newmatrix(lua_State *L) { // Variable declarations int i,j; matrix *temp; // Input checks if (lua_gettop(L)!=2) { lua_pushstring(L,”\n Two input required”); lua_error(L); } //–> Check I° index […]