我正在尝试在边框处用填充零的矩阵填充最靠近边界的像素值,例如:
A = rand(5);
Z = zeros(9);
Z(3:7, 3:7) = A;
Run Code Online (Sandbox Code Playgroud)

现在我想通过以下方式完成矩阵边框:

我正在寻找一个没有任何for循环的好解决方案
编辑:
它应该如下所示:

这是我的代码:
public static int[][] arraytriangle(int lines){
int[][] tri = new int[lines][];
int c = 1; // incremented number to use as filler
for (int i = 0; i < lines; i++){
for (int j = 0; j <= i; j++){
tri[i] = new int[i+1]; // defines number of columns
tri[i][j] = c;
System.out.print(c + " ");
c++; // increment counter
}
System.out.println(); // making new line
}
System.out.println(Arrays.deepToString(tri));
return tri;
Run Code Online (Sandbox Code Playgroud)
arraytriangle(3)给出:
1
2 3
4 5 6
[[1],[0,3],[0,0,6]]
所以程序正确打印(1,2,3 ...),但是当我使用deepToString时矩阵值不正确.是什么赋予了?
我正在尝试编写一个通过矩阵的函数.满足条件时,它会记住该位置.
我从一个空列表开始:
locations = []
Run Code Online (Sandbox Code Playgroud)
当函数遍历行时,我使用以下命令追加坐标:
locations.append(x)
locations.append(y)
Run Code Online (Sandbox Code Playgroud)
在函数结束时,列表如下所示:
locations = [xyxyxyxyxyxy]
Run Code Online (Sandbox Code Playgroud)
我的问题是:
使用append,是否可以使列表遵循以下格式:
locations = [[[xy][xy][xy]][[xy][xy][xy]]]
Run Code Online (Sandbox Code Playgroud)
第一个括号表示矩阵中一行的位置,每个位置在行内的自己的括号中?
在此示例中,第一个括号是第一行,总共有3个坐标,然后是第二个括号,用另外3个坐标表示第二行.
我正在尝试获取一个python程序来获取.dat文件并将其读入矩阵.我大部分时间都在工作,但是"无"会在声明结尾处继续打印.
import sys
def main():
matrix = generateMatrixFromFile(sys.argv[1])
print(printMatrix(matrix))
def generateMatrixFromFile(fname):
fp = open(fname, "r")
row = fp.readlines()
matrix = []
for i in range(0, len(row), 1):
token = row[i].split(" ")
token[-1] = token[-1].replace('\n', '')
matrix.append(token)
fp.close()
return matrix
def printMatrix(matrix):
for i in range(0, len(matrix), 1):
for j in range(0, len(matrix[i]), 1):
print(matrix[i][j], sep=" ", end=" ")
print()
main()
Run Code Online (Sandbox Code Playgroud) 我记得(base?)R中的一个函数可以生成一个如下的矩阵:
structure(c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
4L, 5L, 1L, 2L, 3L, 4L, 5L), .Dim = c(5L, 4L))
Run Code Online (Sandbox Code Playgroud)
显示为:
>
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 2 2 2 2
[3,] 3 3 3 3
[4,] 4 4 4 4
[5,] 5 5 5 5
Run Code Online (Sandbox Code Playgroud)
或者列形式:
>
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 1 2 3 4
[3,] 1 2 3 4
[4,] 1 2 …Run Code Online (Sandbox Code Playgroud) 我如何采用如下矩阵:
matrix = [[2,0,2],[0,2,0],[2,0,2]]并将其转换为[[4,0,4],[0,4,0],[4] ,0,4]
列表中的所有元素都变为平方?我正在尝试列表理解.
我必须按顺序解决多个最小二乘问题 - 这是一个接一个.前一个问题中的每个最小二乘问题仅改变一行.右手边对所有人来说都是一样的.例如,问题1:|| Ax-b || 和问题2:|| Cy-b || 其中C和A仅改变一行.也就是说,它相当于从A中删除一行并在A中包含一个新行.当解决问题2时,我也有x.是否有解决问题2的快速方法?
machine-learning matrix linear-algebra data-mining numerical-methods
我编写了一个程序(像这样),由于用户在缩放,倾斜,旋转和平移方面的输入,该程序生成了转换矩阵并将其应用于对象。
现在我要反过来做:给定转换矩阵,如何计算这些值?矩阵是2D(a,b,c,d,tx,ty)。
我知道这是一个纯粹的数学问题,但是我在高中时还不够集中……
我正在使用Lazy Foo的教程.我发现glPushMatrix()和glPopMatrix()函数非常混乱.我需要有人来解释如何存储矩阵,如何激活其中一个(如果这就是你所说的)以及来自Lazy Foo网站的代码:
void render()
{
//Clear color buffer
glClear( GL_COLOR_BUFFER_BIT );
//Pop default matrix onto current matrix
glMatrixMode( GL_MODELVIEW );
glPopMatrix();
//Save default matrix again
glPushMatrix();
Run Code Online (Sandbox Code Playgroud)
"打开"然后恢复矩阵服务的目的是什么?
矩阵A只是一个简单的矩阵,有n行和c列矩阵B只是一个简单的矩阵,有n行和d列
因此,A和B具有相同的行n,但列数不同,但有些列是相同的(列的名称和该列中的值)
我需要创建一个矩阵C,使C只有A和B的相同列.
A和B有colnames(),所以这就是我要做的但是我确信有更快的方法:
for (i in 1:ncol(A)){
if(colnames(A)[i] == colnames(B)[i]){
#do magic
}
}
Run Code Online (Sandbox Code Playgroud)
但这失败了2个地方,A)显然如果位置不同,那么需要"if(colnames(A)[i]在colnames(B)中)"和B)B中不在A中的元素被忽略; 总的来说这是一个糟糕的方法.
我使用的C =交叉(A,B)也不起作用; 它给了我不是我想要的任何建议?
谢谢