【问题标题】:How to reproduce the following matlab code involving for loop in R?如何在 R 中重现以下涉及 for 循环的 matlab 代码?
【发布时间】:2019-09-20 06:41:58
【问题描述】:

我想在 R 中使用 for 循环绘制图形。我尝试使用 matlab,它可以正常工作。

我在matlab中尝试过以下代码:

# matlab code

d=0:400;
for h=1:10:50
w=1./(1+(d.^2/h^2));
plot(d,w);
hold on
end
xlabel('Distance(km)')
ylabel('Weight')

我在 R 中尝试了以下代码,但它似乎不起作用

# R code

h <- c(1,20,50,100,200,400)
d <- seq(40, 420, by = 20)
for (i in 1:d) {
  w <- 1/(1+(i^2/h^2))
  lines(d, w)
}

如何使用 for 循环在 R 中重现上述 matlab 代码?

【问题讨论】:

标签: r matlab for-loop plot


【解决方案1】:

这是使用 Tidyverse 包的一种可能性:

library(tidyverse)

df <- 
  tibble(
    d = rep(0:400, 5),
    h = rep(c(1, 11, 21, 31, 41), each = 401)
  ) %>% 
  mutate(w = 1 / (1 + (d ^ 2 / h ^ 2)))

df %>% 
  mutate(h = factor(h)) %>% 
  ggplot(aes(x = d, y = w, color = h)) +
  geom_line() + 
  labs(
    x = "Distance (km)",
    y = "Weight"
  ) +
  theme(legend.position = "bottom")

【讨论】:

  • 我理解 R 是绘制此图的不同方式,但我特别感兴趣仅通过 for 循环来完成。我只是想看看matlab和R的区别。
猜你喜欢
  • 2020-03-27
  • 2019-05-31
  • 2014-08-13
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2020-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多