将文本文件中的整数存储到变量数组中

时间:2019-10-01 12:59:11

标签: matlab for-loop if-statement

我需要使用一些文本文件在MATLAB中绘制x,y的一些坐标。 我在使用for循环读取它时遇到问题。

我可以在Python中找到它,但需要在MATLAB中进行转换的帮助。

这是Python中的一些代码

<?xml version="1.0" encoding="UTF-8"?>
<Root>
  <Products>
    <Product>
      <newproductname> pr_name 1</newproductname>
      <productname> pr_name 1</productname>
      <price> pr_price 1</price>
      <sku> pr_sku 1</sku>
      <Images>
        <Image> image_url 1.1</Image>
        <Image> image_url 1.2</Image>
      </Images>
    </Product>
    <Product>
      <newproductname> pr_name 2</newproductname>
      <productname> pr_name 2</productname>
      <price> pr_price 2</price>
      <sku> pr_sku 2</sku>
      <Images>
        <Image> image_url 2</Image>
      </Images>
    </Product>
    <Product>
      <newproductname> pr_name 3</newproductname>
      <productname> pr_name 3</productname>
      <price> pr_price 3</price>
      <sku> pr_sku 3</sku>
      <Images>
        <Image> image_url 3.1</Image>
        <Image> image_url 3.2</Image>
        <Image> image_url 3.3</Image>
      </Images>
    </Product>
    <Product>
      <newproductname> pr_name 4</newproductname>
      <productname> pr_name 4</productname>
      <price> pr_price 4</price>
      <Images/>
      <sku> pr_sku 4</sku>
    </Product>
  </Products>
</Root>

但是在Matlab中,我最初是从此代码开始的

   file = open("6.txt", "r")
   x = []
   y = []
   z = []
   for i in file.readlines()[::]:
       if i[0] == "(":
           jam = i.strip('()').split(",")
           x.append(float(jam[0]))
           y.append(float(jam[1]))
           jam = i.strip('()\n').split(",")
           z.append(float(jam[2]))
   '''

在Python中的结果是

    fileID = fopen('1.txt', 'r+');
    formatSpec = '%s';
    for i = fscanf(fileID, '%s')[::]

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

content=readmatrix('1.txt') %read the entire content as a matrix
x=content(:1) %extract the first column
y=content(:2) %extract the second column
plot(x,y) %plot the data

我现在无法测试上面的代码,这就是为什么我注释所写的每一行的原因。但是算法仍然存在。