我正在尝试用R编写一些代码,以从中获得:
begin{align*}
begin{pmatrix}
a1 & b1 & c1 & d1 & e1 & f1 & g1 & h1 & i1 & hdots \
a2 & b2 & c2 & d2 & e2 & f2 & g2 & h2 & i2 & hdots \
vdots & vdots & vdots & vdots & vdots & vdots & vdots & vdots & vdots
end{pmatrix}
end{align*}
到此:
begin{align*}
begin{pmatrix}
a1 + b1 + c1 & d1 + e1 + f1 & g1 + h1 + i1 & hdots \
a2 + b2 + c2 & d2 + e2 + f2 & g2 + h2 + i2 & hdots \
vdots & vdots & vdots
end{pmatrix}
end{align*}
但是,如果不使用for循环,则不确定这是否可行。
我认为这最终会让它变对:
## given x
library(magrittr)
smaller.matrix <- matrix( t(x), nrow=3 ) %>%
colSums %>%
matrix( byrow=TRUE, nrow=nrow(x) )
magrittr
库仅用于添加可读性的%>%
运算符。如果你愿意的话,你可以使用所有的lisp并将语句封装到多层(...)
中
此外,上面的解决方案排序要求你的列数可以整除我的3,但这似乎是基于你的问题的描述
假设Note最后的输入将其读取到单独的行中(如果您已经有了,则省略此项(,并使用grep查找要修改的行,并使用gsub执行修改。
L <- readLines(textConnection(Lines))
hdots <- grep("hdots", L)
L[hdots] <- gsub("&([^&]*)&([^&]*)&", "+\1+\2&", L[hdots])
vdots <- grep("vdots", L)
L[vdots] <- gsub("(.vdots) & .vdots & .vdots", "\1", L[vdots])
L <- paste(L, collapse = "n")
cat(L, "n")
给予:
begin{align*}
begin{pmatrix}
a1 + b1 + c1 & d1 + e1 + f1 & g1 + h1 + i1 & hdots \
a2 + b2 + c2 & d2 + e2 + f2 & g2 + h2 + i2 & hdots \
vdots & vdots & vdots
end{pmatrix}
end{align*}
备注
可复制形式的输入:
Lines <- r"[
begin{align*}
begin{pmatrix}
a1 & b1 & c1 & d1 & e1 & f1 & g1 & h1 & i1 & hdots \
a2 & b2 & c2 & d2 & e2 & f2 & g2 & h2 & i2 & hdots \
vdots & vdots & vdots & vdots & vdots & vdots & vdots & vdots & vdots
end{pmatrix}
end{align*}]"