小编Car*_*oft的帖子

如何使用给定类的方法查找所有函数

我基本上寻找相反的methods(some_function),它返回该函数存在的所有类方法.有没有一些简单的方法来搜索具有method给定对象类的显式的所有函数?
例如,methods(my_func)返回一堆myfunc.classname值.有没有一个functions(my_class)方法可以返回所有函数func.my_class

r

4
推荐指数
1
解决办法
130
查看次数

将子矩阵乘以常数

可以说我有矩阵

a =  [ 1 1 1 1;
       1 1 1 1;
       1 1 1 1]
Run Code Online (Sandbox Code Playgroud)

我想将子矩阵a(2:3, 2:3)乘以5; 所以新的矩阵是

a =  [ 1 1 1 1;
       1 5 5 1;
       1 5 5 1]
Run Code Online (Sandbox Code Playgroud)

那是什么功能?我试过这个=>

a = a(2:3, 2:3)*5;
Run Code Online (Sandbox Code Playgroud)

但那只会给我一个新的矩阵2x2

a = [5 5;
     5 5]
Run Code Online (Sandbox Code Playgroud)

matlab

4
推荐指数
1
解决办法
206
查看次数

如何在String中将String转换为变量名

我正在使用一堆货币数据.csv文件.这些.csv没有标题,我正在尝试添加,使用colnames函数.

colnames(variable_name) <- c('Date', 'Time', 'Open', 'Close', 'Volume')
Run Code Online (Sandbox Code Playgroud)

数据导入和列标题的分配应该使用for循环自动完成.数据框的名称是文件名的一部分.

file_names <- list.files()

for (i in 1:length(file_names)){
    assign(substr(file_names,1,6)[i], read.csv(file_names[i], header=F))
    colnames(variable_name) <- c('Date', 'Time', 'Open', 'Close', 'Volume')
}
Run Code Online (Sandbox Code Playgroud)

如何设置将variable_name输入到colnames函数中.我试过用:

colnames(substr(file_names,1,6)[i])
Run Code Online (Sandbox Code Playgroud)

但这会给我输入"AUDUSD",我需要输入没有引号的AUDUSD.

那么如何才能将String转换为我可以在这里使用的变量名?或许我的方法在这里完全错了?

非常感谢!

克里斯

string variables r

3
推荐指数
1
解决办法
1万
查看次数

当用作矩阵索引时,如何解释TRUE?

我在某个地方看到了一些(坏)代码,这些代码最终调用了一个mymatrix[TRUE]沿途执行的函数.事实证明,至少在我测试的样本中,这被解释为选择矩阵的所有元素.显然[不是强迫TRUE1,因为当时我只得到第一个元素中返回,而不是整个矩阵. mymatrix[FALSE]回报numeric(0).有人能解释一下[这里到底在做什么吗?

r

3
推荐指数
2
解决办法
140
查看次数

在R中显示变量的精确值

> x <- 1.00042589212565
> x
[1] 1.000426
Run Code Online (Sandbox Code Playgroud)

如果我想打印确切的值x,我该怎么做?

对不起,如果这是一个愚蠢的问题.我试着谷歌搜索"R"和"确切"或"圆形",但我得到的是关于如何舍入的文章.

先感谢您!

r r-faq

3
推荐指数
2
解决办法
5465
查看次数

Microsoft Visual Basic:如何初始化数组变量?

我编写了一个宏,它对文档中特定Word样式集的每个实例执行某些操作.

为此,我用这种方式创建了一个名字数组:

Dim mylist(4) As String
mylist(1) = "Heading 1" 
mylist(2) = "Heading 2" 
mylist(3) = "Heading 3" 
mylist(4) = "Caption"
Run Code Online (Sandbox Code Playgroud)

我无法找到任何帮助页面(在Office帮助或microsoft.com中)提到了一个更短的方法.是否有任何语法可以让我简化为(伪代码)

mylist(1:4) = ["Heading 1", "Heading 2", "Heading 3", "Caption"]
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个数组的单行加载的通用解决方案,无论是字符串还是数字,当我不想要整个集合时,比如说文档中的所有样式.

编辑:我在Visual Basic 2008中运行了Collection初始化语法?,这表明答案是"直到VB10".任何对该结论的更新都将受到欢迎.

vba initialization

3
推荐指数
1
解决办法
9080
查看次数

在 R 中移动 .csv 文件中的列表;不能正确使用`unlist`

我在 R 中生成了列表 L,其中

L <- list()
L[[1]] <-cbind ("Orks", "Eldar")      
L[[2]] <-cbind ("Nid", "Tau")   
Run Code Online (Sandbox Code Playgroud)

和输出

> L
[[1]]
     [,1]  [,2]   
[1,] "Orks" "Eldar"

[[2]]
     [,1]  [,2] 
[1,] "Nid" "Tau"
Run Code Online (Sandbox Code Playgroud)

我想用以下输出编写一个 .csv 文件

Number  Type
1       Orks, Eldar
2       Nid, Tau
Run Code Online (Sandbox Code Playgroud)

即,将列表组件 L[[i]] 传输到文件的第 i 行,具有上述拆分和列名。我开始使用

LL <- data.frame(matrix(unlist(L), nrow=2) )
Run Code Online (Sandbox Code Playgroud)

但输出并没有说服我,因为我不知道如何在将条目LL发送到 .csv 文件之前将它们绑定到 的同一行上。

是否有一种蛮力方法可以到达上面的 .csv 结构,而不是玩弄unlist它的结果?

我非常感谢你!

csv r list

3
推荐指数
1
解决办法
236
查看次数

用一个y轴和两个x轴绘制两组数据

我已经阅读了几个关于为数据设置两个x轴的SO答案,以及在mathworks.com上的一些教程,但我没有看到完全如下的方法:

通常绘制数据集第一.在图形的顶部创建第二个x轴,但使用现有的y轴作为下一个数据集.绘制第二个数据集,使其控制第二个x轴(缩放等),并且不会覆盖或重新缩放现有的单个y轴.

这样做的原因是我想基于相同的源数据集绘制两组不同的直方图值,因此频率分布的大小相似,但是bin大小/边的值是不同的.

我的后备是对第二个数据集的x数据进行点斜率缩放,但是我仍然需要创建第二个x轴,类似于如何在Matlab中插入两个X轴.

matlab plot matlab-figure

3
推荐指数
1
解决办法
3690
查看次数

如何将任意数据类型写入Matlab单元格数组

这是一个普遍问题,与特定操作无关.我希望能够将任意函数的结果写入单元格数组的元素,而不考虑函数返回的数据类型.考虑这个伪代码:

zout = cell(n,m);
myfunc = str2func('inputname'); %assume myfunc puts out m values to match zout dimensions
zout(1,:) = myfunc(x,y);
Run Code Online (Sandbox Code Playgroud)

这将适用于"inputname"=="strcat",例如,给定它x并且y是具有适当维度的字符串或单元格.但是如果"inputname"=="strcmp"则输出是逻辑数组,并且Matlab会抛出错误.我需要这样做

zout(1,:) = num2cell(strcmp(x,y));
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:有没有办法填充单元格数zout而不必测试生成的变量类型myfunc(x,y ?我应该首先使用a struct(如果是这样,最好的方法是填充它)?
(我通常是R用户,我可以在list没有任何痛苦的情况下使用变量)

编辑:为了简化整体范围,添加以下"要求":我们现在假设,对于返回多个输出的函数,只需要捕获第一个zout.但是当此输出是N值的向量或单元的向量(即Nx1单元阵列)时,这些N值将被映射到zout(1,1:N).

matlab types function return-value cell-array

2
推荐指数
1
解决办法
1499
查看次数

在R中,使用&与方括号[] []组合列有什么区别?

在R中,有什么区别:

summary(airquality$Solar.R[(airquality$Ozone>31)&(airquality$Temp>90)])
Run Code Online (Sandbox Code Playgroud)

summary( (airquality[airquality$Ozone>31,][airquality$Temp>90,])$Solar.R)
Run Code Online (Sandbox Code Playgroud)

我的结果略有不同,212.0与212.8相比,这更准确,表现更好.

r

2
推荐指数
1
解决办法
121
查看次数

如何在MATLAB中将数字强制转换为[1,10]

我有一些数字,例如:

1.1, 10, 2.2*1.0e+45, 2.2*1.0e-44

我不知道确切的下一个数字是什么,但我想删除数字的科学部分,即将每个数字的数量减少到半开区间[1,10].输出值必须如下:

1.1, 1, 2.2, 2.2

如何在MATLAB中实现这一目标?

matlab

1
推荐指数
1
解决办法
63
查看次数

如何通过回调函数传递varargin

我正在编写一个图形窗口的代码,其中包含几个运行回调函数的GUI项.目前我有一个文本框和一个滑块控件,我进行了设置,以便更改文本框值不仅会更改显示的数据,还会更新滑块位置以匹配该值.我varargin遇到的问题是试图保持我的参数(在创建图形窗口时输入到main函数)被包含在父cell变量中.当我的顶层varargin包含一个值参数对,varargin是一cell维的1x2的.没关系.通常,可以将所有这些参数传递给内部函数调用,如下所示:

function topfunc(varargin)
%code
do_something(varargin{:})
Run Code Online (Sandbox Code Playgroud)

该函数dosomething可以看到正确的参数列表.但是,当我通过callback定义传递varargins时,就像在

txtui = uicontrol(hf,'Style','edit','string',fristframe,'backgroundcolor','y',...
    'position',[10 100 50 20],'Tag','Scaler','UserData',lsatframe,...
    'Callback',{@doslide,adcname,mode,goodframes,{varargin{:}} } ); 
Run Code Online (Sandbox Code Playgroud)

然后该函数 doslide调用绘图更新功能dordplot

 function doslide(theui,event,fileName,mode, goodframes,varargin)
% code snipped...

dordplot(slidinfo,event,fileName,mode,goodframes,varargin{:});
end
Run Code Online (Sandbox Code Playgroud)

里面doslide,varargin是含有期望的1×2单元1x1的细胞.

我在我的最终函数中添加了一个kludge修复程序,其中varargin实际使用的内容与行

varargin = varargin{:};
Run Code Online (Sandbox Code Playgroud)

但是,varargin首先将它包裹在一个细胞内似乎是错误的.
有没有修复,或者我是否错误地定义了我的回调函数调用?

matlab callback variadic-functions cell-array matlab-gui

0
推荐指数
1
解决办法
481
查看次数