小编Sue*_*ver的帖子

在八度音程中使用 varargin

我试图varargin在八度音程中使用,但似乎遇到了一些问题。这是我的代码:

into2.m

function  [result] = into2(x)
    result = x*2;
endfunction
Run Code Online (Sandbox Code Playgroud)

into3.m

function  [result] = into3(x)
    result = x*3;
endfunction
Run Code Online (Sandbox Code Playgroud)

calc.m

function  [result1] = calc(varargin, x)
    fn1 = varargin{1};
    fn2 = varargin{2};
    result1 = fn1(x) + fn2(x);
endfunction
Run Code Online (Sandbox Code Playgroud)

test1.m(主功能)

function  [] = test1()
    result= calc(@into2,@into3,2);
    disp(result);
endfunction
Run Code Online (Sandbox Code Playgroud)

test1()是主函数调用calc()并传递两个函数句柄和一个标量。我期望varargin应该有@into2,@into3并且x应该有2。然而,varargin@into2且 x 有@into3。我尝试更改顺序,但传递的两个函数不会进入一个参数;每个参数只有一个功能。我相信varargin应该有一个细胞,但似乎不起作用。我使用的是 Octave 4.2。(将MATLAB放入标签中,因为两者应该是相似的。)

matlab octave

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

在matplotlib中为colorbar添加白色背景

我想通过添加白色背景使我的颜色条更加醒目.我需要图像中的颜色条,这使得有时难以阅读.

这是没有白色背景的代码.

import matplotlib.pyplot as plt
import numpy as np

a=np.random.rand(10,10)

fig=plt.figure()
ax=fig.add_axes([0,0,1,1]) #fill the entire axis
im=ax.imshow(a)
cbaxes=fig.add_axes([0.8,0.1,0.03,0.8]) #add axis for colorbar, define size
cb=fig.colorbar(im,cax=cbaxes) #make colorbar
#cb.outline.set_color('white') #this does not work
fig.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

4
推荐指数
2
解决办法
1065
查看次数

MATLAB - xy曲线下的条纹区域(弯矩分布)

我想要实现的是一个经典的弯矩分布图,可能看起来像这样:

我想要创建的绘图示例

我试图使用区域,xy和条形图,最后一个是最接近我需要的 - 但它仍然不是我能接受的.我可以使用任意形式的数据.

matlab plot matlab-figure

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

以编程方式确定脚本是否正常发布或执行

发布R2016a之前,出版 MATLAB中的方式来记录一个脚本的结果.我发现当我手动运行脚本时,我经常pause在整个脚本中放置命令.有没有一种简单的方法来确定脚本是否已发布?然后,我可以将我的暂停包含在一些代码中:

if isNotPublishing
    pause();
end
Run Code Online (Sandbox Code Playgroud)

我的google foo让我无法找到解决方案.

matlab publish

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

给定n个点的列表,如何使用numpy生成包含从每个点到每个其他点的距离的矩阵?

嘿家伙所以我试图在python中重写以下matlab代码:

repmat(points, 1, length(points)) - repmat(points', length(points),1);
Run Code Online (Sandbox Code Playgroud)

points 是一个包含几个点的弧度值的数组.

上面的代码给我一个像这样的矩阵输出:

 0   1   2   0   1   2   0   1   2
-1   0   1  -1   0   1  -1   0   1
-2  -1   0  -2  -1   0  -2  -1   0
 0   1   2   0   1   2   0   1   2
-1   0   1  -1   0   1  -1   0   1
-2  -1   0  -2  -1   0  -2  -1   0
 0   1   2   0   1   2   0   1   2
-1   0   1  -1   0   1  -1 …
Run Code Online (Sandbox Code Playgroud)

python matlab numpy matrix

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

在Matlab中根据正态分布生成随机数

我正在尝试根据我具有的正态分布特征(均值和标准差)生成一个随机数。我没有统计和机器学习工具箱。

我知道一种方法是随机生成一个r从0到1 的随机数,然后找到给出该随机数概率的值。我可以通过输入标准正常功能来做到这一点

f= @(y) (1/(1*2.50663))*exp(-((y).^2)/(2*1^2))
Run Code Online (Sandbox Code Playgroud)

和解决

r=integral(f,-Inf,z)
Run Code Online (Sandbox Code Playgroud)

然后从z值外推到X方程式的最终答案

z=(X-mew)/sigma
Run Code Online (Sandbox Code Playgroud)

但是据我所知,没有matlab命令可以让您求解x,其中x是积分的极限。有没有办法做到这一点,或者有更好的办法随机产生这个数字?

integration matlab normal-distribution

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

如何使用线性索引在Python中访问2D数组

我在MATLAB中有一段代码,我尝试将该代码转换为Python.在MATLAB中,我可以这样写:

x = [1,2,3;4,5,6;7,8,9];
Run Code Online (Sandbox Code Playgroud)

这只是一个3*3矩阵.然后,如果我使用x(1:5),MATLAB将首先将矩阵x转换为1*9向量,然后返回一个1*5向量,如下所示:ans=[1,4,7,2,5]; 那么请你告诉我python中的那段简单代码可以有相同的结果吗?

python matlab matrix

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

如何使用pydicom从DICOM文件访问RGB像素阵列?

我尝试使用未知压缩(可能没有)访问 DICOM 文件的RGB像素阵列。提取灰度像素阵列完全正常。

但是,使用

import dicom
import numpy as np

data_set = dicom.read_file(path)
pixel_array = data_set.pixel_array
size_of_array = pixel_array.shape

if len(size_of_array ) == 3:     
    chanR = pixel_array[0][0:size_of_array[1], 0:size_of_array[2]]
    chanG = pixel_array[1][0:size_of_array[1], 0:size_of_array[2]]
    chanB = pixel_array[2][0:size_of_array[1], 0:size_of_array[2]]
    output_array = (0.299 ** chanR) + (0.587 ** chanG) + (0.114 ** chanB)
Run Code Online (Sandbox Code Playgroud)

目的是将其转换为常见的灰度数组。不幸的是,结果数组output_array不包含正确的像素数据。内容没有错误缩放,它们在空间上受到干扰。问题出在哪里?

python numpy dicom pydicom

4
推荐指数
2
解决办法
5447
查看次数

如何在matplotlib.hlines中设置标签

我试图在matplotlib.hlines中为每行添加标签:

from matplotlib import pyplot as plt
plt.hlines(y=1, xmin=1, xmax=4, label='somelabel1')
plt.hlines(y=2, xmin=2, xmax=5, label='somelabel2')
Run Code Online (Sandbox Code Playgroud)

我需要一个带有两条水平线的图,每条线在“ y”轴上带有标签。取而代之的是,我得到的图没有标签,只有坐标(请参见示例图像)。是否可以将每条线的标签放入图中?

在此处输入图片说明

python matplotlib python-3.x

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

在使用imagesc创建的绘图上覆盖半透明矩形?

imagesc在MatLab中用来绘制声场.我现在想要在图像上的某个位置覆盖半透明的填充矩形.理想情况下,我希望能够执行以下操作:

imagesc(g,g,field);
hold on
plotRectangle([100,100,200,200], 'b', 0.5)
hold off
Run Code Online (Sandbox Code Playgroud)

其中b是矩形的颜色,0.5是透明度.可以这样做吗?

matlab matlab-figure

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