Matlab 将矩阵行值迭代输入到函数中
我有一个矩阵的大小是Matlab 将矩阵行值迭代输入到函数中,matlab,matrix,Matlab,Matrix,我有一个矩阵的大小是100x1。我希望以迭代方式将矩阵的每一行值输入到函数中。例如,假设L1表示我的矩阵L的第1行,L2第2行,依此类推。假设我试图输入L的每个值的函数表示为Y。因此,我试图将L1输入Y,以生成Y1,L2的Y2等 如何在matlab中实现这一点,我真的需要帮助吗 接受 代码如下: load('logregdata.mat') %%Data set X is a series of coordinates in two dimensions and t represents cl
100x1
。我希望以迭代方式将矩阵的每一行值输入到函数中。例如,假设L1
表示我的矩阵L
的第1行,L2
第2行,依此类推。假设我试图输入L
的每个值的函数表示为Y
。因此,我试图将L1
输入Y
,以生成Y1
,L2
的Y2
等
如何在matlab中实现这一点,我真的需要帮助吗
接受
代码如下:
load('logregdata.mat')
%%Data set X is a series of coordinates in two dimensions and t represents class labels. Data set is for a binary classification problem.
u = rand;
[w1,w2] = meshgrid(-5:0.1:5,-5:0.1:5);
w = zeros(2,1);
w_all = zeros(100,2);
%Probabilistic term of logistic classifier prob_t = 1./(1+exp(-[w1(:) w2(:)]*X'));
L = sum(log(prob_t).*repmat(t',numel(w1),1),2);
L= L + sum (log(1-prob_t).*repmat(1-t',numel(w1),1),2);
u = rand;
y = log(L/u);
提前感谢您的帮助。100x1矩阵只是一个向量!因此,您可以像这样在整个阵列中循环:
for i = 1:100
do something with Y(L1)
end
100x1矩阵只是一个向量!因此,您可以像这样在整个阵列中循环:
for i = 1:100
do something with Y(L1)
end
在您的代码中,
u
只是一个标量,因此您可以使用简单的元素操作:
y = log(L./u);
这将为您提供一个与
L
大小相同的向量y
,这样y(k)=log(L(k)/u)
在您的代码中u
只是一个标量,因此您可以使用简单的元素操作:
y = log(L./u);
这将给你一个向量
y
,大小与L
相同,这样y(k)=log(L(k)/u)
为什么不改变这个函数,使它能够支持一个向量呢?这个函数就是y=log(L/u),其中u是一个均匀分布的随机数。矢量化高度依赖于正在执行的操作。u
每行L
是否相同?请向我们展示您的尝试。如果没有一些代码来提供上下文,很难确定您做错了什么。谢谢您的回复。我已经发布了下面的代码为什么不更改函数以便它可以支持向量?函数只是Y=log(L/u),其中u是均匀分布的随机数。我们当前的代码会有所帮助。矢量化高度依赖于正在执行的操作。u
每行L
是否相同?请向我们展示您的尝试。如果没有一些代码来提供上下文,很难确定您做错了什么。谢谢您的回复。我已经发布了下面的代码,我尝试了上面的方法,但是它为y生成了100x1的输出,而不是为每个L输入生成了y输出。感谢您的回复:)我尝试了上面的方法,但它为y生成了100x1的输出,而不是为每个L输入生成了y输出。感谢您的回复:)