【问题标题】:Input matrix row values iteratively into a function将矩阵行值迭代地输入到函数中
【发布时间】:2016-12-25 16:23:08
【问题描述】:

我有一个大小为100x1 的矩阵。我希望将矩阵的每一行值迭代地输入到一个函数中。例如,假设 L1 表示我的矩阵 L 的第 1 行,L2 第 2 行等等。假设我试图将L 的每个值输入的函数表示为Y。因此,我寻求将L1 输入到Y 以产生Y1L2Y2 等等。

我真的可以帮助我在 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);

提前感谢您的所有帮助。

【问题讨论】:

  • 为什么不改函数让它支持向量呢?
  • 函数就是Y=log(L/u),其中u是一个均匀分布的随机数
  • 您当前的代码会有所帮助。矢量化高度依赖于正在执行的操作。 u 对于L 的每一行是否相同?
  • 请向我们展示您的尝试。如果没有一些代码来提供上下文,就很难确定你做错了什么。
  • 感谢您的回复。我已经在下面发布了代码

标签: matlab matrix


【解决方案1】:

100x1 矩阵只是一个向量!所以你可以像这样循环整个数组:

for i = 1:100

      do something with Y(L1)

end

【讨论】:

  • 我尝试了上述方法,但它为 y 生成 100x1 输出,而不是为每个 L 输入生成 y 输出。感谢您的回复:)
【解决方案2】:

在您的代码中u 只是一个标量,因此您可以使用简单的元素操作:

y = log(L./u);

这将为您提供与L 大小相同的向量y,使得y(k) = log(L(k)/u)

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2014-01-03
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 2014-10-22
    相关资源
    最近更新 更多