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输出。感谢您的回复:)