我试图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放入标签中,因为两者应该是相似的。)
我想通过添加白色背景使我的颜色条更加醒目.我需要图像中的颜色条,这使得有时难以阅读.
这是没有白色背景的代码.
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) 我想要实现的是一个经典的弯矩分布图,可能看起来像这样:

我试图使用区域,xy和条形图,最后一个是最接近我需要的 - 但它仍然不是我能接受的.我可以使用任意形式的数据.
发布R2016a之前,出版是在 MATLAB中的方式来记录一个脚本的结果.我发现当我手动运行脚本时,我经常pause在整个脚本中放置命令.有没有一种简单的方法来确定脚本是否已发布?然后,我可以将我的暂停包含在一些代码中:
if isNotPublishing
pause();
end
Run Code Online (Sandbox Code Playgroud)
我的google foo让我无法找到解决方案.
嘿家伙所以我试图在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) 我正在尝试根据我具有的正态分布特征(均值和标准差)生成一个随机数。我没有统计和机器学习工具箱。
我知道一种方法是随机生成一个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是积分的极限。有没有办法做到这一点,或者有更好的办法随机产生这个数字?
我在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中的那段简单代码可以有相同的结果吗?
我尝试使用未知压缩(可能没有)访问 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不包含正确的像素数据。内容没有错误缩放,它们在空间上受到干扰。问题出在哪里?
我试图在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”轴上带有标签。取而代之的是,我得到的图没有标签,只有坐标(请参见示例图像)。是否可以将每条线的标签放入图中?
我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 ×7
python ×5
matplotlib ×2
matrix ×2
numpy ×2
dicom ×1
integration ×1
octave ×1
plot ×1
publish ×1
pydicom ×1
python-3.x ×1