小编Rya*_*ons的帖子

从R函数返回图

为什么我的R功能不会返回或打印图?代码如下.除了情节之外,所有代码似乎都能正常工作.无论我做什么,我都无法在调用函数时让R创建绘图.环顾四周,我找不到任何理由这样做不起作用.

powerc.fun <- function(n,sigma,r){

a <- 0.05
d <- seq(-20,20,2)

power <- rep(NA,length(d))
p.lab <- rep(NA,length(d))

for (j in 1:length(d)){

  mu1 <- 110
  mu2 <- mu1-d[j]  

  reject <- rep(NA,r)

  for (i in 1:r){

    sample1 <- rnorm(n,mu1,sigma)
    sample2 <- rnorm(n,mu2,sigma)

    sample.t <- t.test(sample1,sample2)
    p.val <- sample.t[3]

    reject[i] <- p.val<a 

    power[j] <- sum(reject)/length(reject)
    p.lab[j] <- paste('d=',d[j],sep='')

  }}

d.power <- cbind(d,power)

return(d.power)

p.plot <- plot(d.power[,1], d.power[,2], type="l", xlab=bquote(H[a]), ylab="Power", main="Power Calculations for Two Sample T Test")

print(p.plot)
return(p.plot)

}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

plot r

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

从Unix shell脚本运行MATLAB

我在Mac OS(Mountain Lion)上从Unix shell脚本运行MATLAB脚本时遇到了一些麻烦.

我知道如何从shell调用MATLAB脚本,这很好.但是,问题是我希望我的shell脚本在MATLAB运行完毕后再调用另一个程序.但是当MATLAB程序完成时,shell就会"卡住".也就是说,它不会继续执行shell中的其他函数,并且终端窗口卡在MATLAB环境中而不是将控制权返回给sh.

我该怎么办?这是我的shell的副本:

#! /bin/sh
echo "Please make sure the network cable is plugged in" 
echo "(then press return to continue)"

sudo mv /System/Library/CoreServices/Dock.app /System/Library/CoreServices/Dock.app.bak
killall Dock

/Applications/MATLAB_R2008a/bin/matlab -nodesktop -r "run Documents/MATLAB/BLS/BLS"

sudo mv /System/Library/CoreServices/Dock.app.bak /System/Library/CoreServices/Dock.app

# OTHER COMMANDS AFTER HERE CALLING OTHER PROGRAMS ...
Run Code Online (Sandbox Code Playgroud)

两个"sudo mv"命令只是在执行MATLAB时使Dock不可见,并在MATLAB完成后将其恢复.

第一个命令工作正常,使Dock不可见,然后运行MATLAB.但是,当MATLAB完成运行时,它不会继续使用shell的其余部分.终端在MATLAB中"卡住".我试图摆弄命名管道等,但我无法让它们中的任何一个工作.

在MATLAB完成后如何让它继续执行shell脚本?

unix shell matlab

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

显示目录中的随机图像对

我搜索了网站,但我找不到任何解决这个问题的方法.这是我想要完成的一件非常简单的事情,但我真的无法弄清楚如何去做.

我有一个图像目录.我正在进行一项实验,在滑块上,人们将评估两个图像相互关联的程度.在MATLAB中编程滑块部分很容易.但是,我在弄清楚如何使图像工作时遇到了问题.我希望目录中的两张图片随机出现在屏幕上,这样在实验结束时,每个可能的图像对都会被评级.

所以如果图像是:

dog
cat
mouse
hat
Run Code Online (Sandbox Code Playgroud)

我想要:

dog cat
dog mouse
dog hat
cat mouse
cat hat
mouse hat
Run Code Online (Sandbox Code Playgroud)

如何让MATLAB执行此操作?

首先,我无法让它首先显示随机图像.我的脚本是这样的,但它不起作用:

dfiles = d(~[d.isdir]);
genRandNum = randperm(length(dfiles));
filename = dfiles(genRandNum(i)).name;
imageName = fullfile('Desktop', 'SEMREL', 'Pictures', filename);
imshow(imageName, 'Parent');
Run Code Online (Sandbox Code Playgroud)

但是一旦我开始工作,如何让它在屏幕上彼此相邻显示两个图像?我如何对随机生成进行加权,以便我只获得一次图像对?如果我只是告诉它不要重复不起作用的图像,因为每个单独的图像都必须与其他几个图像配对.

救命?我真的找不到办法做到这一点.

random matlab image

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

R data.frame; 获取列中的值范围

我无法弄清楚如何做到这一点.我在R中有一个data.frame.它看起来像这样:

Scores <- read.table(text = "
        ID Test1 Test2 Test3 Final
1 Student1    20    23    21    48
2 Student2    16    15    18    36
3 Student3    25    20    22    40
4 Student4    14    19    18    42
5 Student5    10    15    14    30
")
Run Code Online (Sandbox Code Playgroud)

我想要的是创建一个新的数据对象,其中包含每个测试的值范围,包括final.所以它看起来像这样:

result <- read.table(text = "
       min max
Test1  10  25
Test2  15  23
Test3  14  22
Final  30  48
")
Run Code Online (Sandbox Code Playgroud)

老实说,无论是仅列出最大值和最小值,还是实际计算差值,我都无所谓.我只是无法找到实现这一点的方法,这不是一种不必要的复杂.我知道我可以手动和单独拉出列,但必须有一些更好的方法来做到这一点.有什么涉及by()tapply()?但我无法让他们工作.

有任何想法吗?

aggregate r

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

为什么随机化不起作用(MATLAB)?

好吧,这就像第五次我不得不提出这个问题,但仍然没有人能够给我一个答案或解决方案.但是我们又来了......

我想运行一个非常简单的小MATLAB程序.它只是随机显示目录中的图像.这是我的代码:

files = dir(fullfile(matlabroot,'toolbox','semjudge',bpic,'*.png')); 
nFiles = numel(files);
combos = nchoosek(1:nFiles, 2);
index = combos(randperm(size(combos, 1)), :); 
picture1 = files(index(nRep,1)).name;
picture2 = files(index(nRep,2)).name;
image1 = fullfile(matlabroot,'toolbox','semjudge',bpic,picture1);
image2 = fullfile(matlabroot,'toolbox','semjudge',bpic,picture2);
subplot(1,2,1); imshow(image1); 
subplot(1,2,2); imshow(image2);
Run Code Online (Sandbox Code Playgroud)

我尝试了几种不同的迭代,包括用"randsample"替换"nchoosek".

但它不起作用!每次运行程序时,脚本都以相同的顺序运行相同的图像文件.它为什么这样做?它就像它第一次运行它时随机化了图像文件,但现在它只按顺序运行它们,而不是每次运行脚本时随机化它们.

有人可以帮我这个吗?

random matlab image

0
推荐指数
2
解决办法
471
查看次数

标签 统计

matlab ×3

image ×2

r ×2

random ×2

aggregate ×1

plot ×1

shell ×1

unix ×1