我有一个向量,由特定数之间的直线空间生成,维数为1*150。现在,我想把上面创建的向量的每个元素乘以另一个向量,它的维数是1*25。下面给出了我的代码的细节
c_p = linspace(1,.3*pi,150);
c = c_p';
C = zeros([150,25]);
for i= 1:1:size(C,1)
wp= c(i);
for n= 1:25
c_wp(n) = cos(n*wp);
end
C(i,25)= c_wp;
end
向量实际上是长度25的余弦的倍数,这里wp是维数1*150的第一向量的元素。因此,根据逻辑,我必须有一个150*25的输出,而不是
我正在使用hmatrix库将一些MATLAB代码翻译给Haskell。它进行得很好,但我无意中发现pos函数,因为我不知道它能做什么,也不知道Haskell对应的是什么。
MATLAB代码如下所示:
[U,S,V] = svd(Y,0);
diagS = diag(S);
...
A = U * diag(pos(diagS-tau)) * V';
E = sign(Y) .* pos( abs(Y) - lambda*tau );
M = D - A - E;
到目前为止,我的Haskell翻译:
(u,s,v) = svd y
diagS = diag s
a = u `multi
当我尝试在MATLAB中使用定义为其自身函数的变量omega绘制函数h时,我从控制台得到Inner matrix dimensions must agree, error using _*_响应。
当我在h的独立函数组件之间使用+时,该函数起作用;当我尝试将h中的两个内部函数相乘时,该函数不起作用,根据我的猜测,这是导致矩阵模糊错误的原因。
function h = freqp(omega)
k = (1:1024-1);
hh = (1:1024-1);
omega = zeros(length(k),1);
omega = (k-1)*((2*pi
对我的“新爱”有问题,matlab:我编写了一个函数,用trapz-方法计算积分:
function [L]=bogenlaenge_innen(schwingungen)
R = 1500; %Ablegeradius
OA = 1; %Amplitude
S = schwingungen; %Schwingungszahl
B = 3.175; %Tapebreite
phi = 0:2.*pi./10000:2.*pi;
BL = sqrt((R-B).^2+2.*(R-B).*OA.*sin(S.*phi)+
下面的Matlab脚本(取自MATLAB的fft帮助)运行得非常好
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sample time
L = 1000; % Length of signal
t = (0:L-1)*T; % Time vector
% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid
x = 0.7*sin(2*pi*50*t) + sin(2
我正在用MATLAB重写一个蒙特卡洛仿真模型,重点是可读性。该模型涉及许多粒子,表示为(x,y,z),在具有一定终止概率的一小组状态上随机行走。与输出相关的信息是在给定状态下终止的粒子数量。
模拟需要足够的粒子,因此单独为每个粒子运行模拟的成本很高。矢量化似乎是从MATLAB中获得性能的方法,但是有什么惯用的方法来在MATLAB中创建这种模拟的矢量化版本吗?
为了实现这一点,我不知所措-我甚至尝试创建一个(nStates X nParticles)矩阵来表示每个粒子-状态组合,但这种方法很快就失去了可读性,因为粒子相互独立地从一个状态反弹到另一个状态。我是不是应该咬紧牙关换一种更适合这方面的语
我已经被告知了我们需要知道的语句,下面是我对它们所做的回答。如果我在什么地方弄错了,请纠正我,并告诉我如何学习我可能需要的更高级的语句,例如,用于元素智能操作的.*和.^,我还没有学会。
% Mini-Matlab:
% =============
%
% Find out what these statements do!
% Then you can write a Matlab-program.
% "%" starts a Matlab comment
x=[2 3]
上面的代码就像一个数组,一个驻留在内存中语句后面的向量。
y=[4 5]'
这是
我有一个三重嵌套的matlab循环,它需要大量的时间来解决它。你有什么建议,我怎样才能加快模拟?这个具体的模拟是快速的,但在实际代码中,t有上千个元素,而A和B大约有400个元素。
A = [1,2,3];
B = [1,2];
t=[1:1:4];
or hh = 1:length(t)
for ii = 1:length(A)
T1(ii,hh)=A(ii)*t(hh)
for jj = 1:length(B)
T2(ii,jj,hh)=A(ii)*B(jj)*t(hh)
end
我正在学习安德鲁·吴( Andrew )的机器学习课程,目前正在用MATLAB/Octave编写一个前向传播代码,以解决这个成本函数:
目前,我已经用如下的for循环形式编写了它:
for i= 1:m
for j= 1:num_labels
J = J + log(ht(j,i))*y(j,i) + log(1-ht(j,i))*(1-y(j,i));
end
end
J = -J/m;
这样就可以完成任务了。但是,我想简化这段代码,因为当我觉得可以使用向量化形式时,我总是觉得在MATLAB中使用for循环有点“脏”。但是for循环看起来很自然,因为有两个求和。