要将MATLAB数据转换为csv,我的代码是:
M={'It is raining since morning'}
csvwrite('data.csv',M)
将句子像单个字符一样保存在单个单元格中
| I | t | | i | s | | r | a | i | n | i | n | g |......
当我从Python调用它时,我的代码是:
import csv
with open('data.csv') as csvfile:
readCSV = csv.reader(csvfile)
for row in readCSV:
a=(row)
print(a)
给出结果:
['I', 't', ' ', 'i', 's', ' ', 'r', 'a', 'i', 'n', 'i', 'n', 'g', ' ', 's', 'i', 'n', 'c', 'e', ' ', 'm', 'o', 'r', 'n', 'i', 'n', 'g']
我只想将此句子另存为"It is raining Since Morning"
这样的字符串。
如果我要发送此数据进行转换,那么我还想将此文本转换为语音
>> ['I', 't', ' ', 'i', 's', ' ', 'r', 'a', 'i', 'n', 'i', 'n', 'g', ' ', 's', 'i', 'n', 'c', 'e', ' ', 'm', 'o', 'r', 'n', 'i', 'n', 'g']
出现错误:
AttributeError:“ list”对象没有属性“ strip”
答案 0 :(得分:2)
您正在尝试将字符串保存为支持数字的格式。请勿将圆钉塞入方孔,而应插入圆孔,例如.txt
:
M='It is raining since morning'; % Why a cell? Character arrays work better
FiD = fopen('data.txt','w+'); % Create and open file for writing
fprintf(FiD,M); % write data
fclose(FiD); % Close file
我不知道如何在Python中工作,但解析纯字符串以形成合适的格式应该不会太麻烦。
答案 1 :(得分:0)
不确定MATLAB方面,但是由于字符串是可迭代的,因此它看起来像将字符串解释为要保存的字符列表,然后将这些逗号分隔开,因此,如果您实际的CSV文件看起来像这样,在文本编辑器中将其打开:
I,t, ,i,s, ,r,a,i,n,i,n,g, ,s,i,n,c,e, ,m,o,r,n,i,n,g
要将仅单个字符串保存到CSV,请尝试使其成为数组的单个元素,以在CSV中获取以下文本
It is raining since morning
这表示CSV似乎不是您所用案例的正确格式。为什么不只是一个简单的.txt文件?
在python方面,如果您可以使用csv
加载上面的内容,则会为您提供带有单项的列表:
print(a)
Out: ['It is raining since morning']
或者,您可以使用以下命令从字符列表中创建所需的字符串:
a = ''.join(a)
此外,请注意:strip
对字符串不做任何操作,因为没有前导或尾随空格。希望有帮助。
答案 2 :(得分:-2)
根据Matlab's documentation for csvwrite,它仅支持数字矩阵。最好使用支持字符串的xlswrite。 Python还具有读取excel文件的功能,因此从csv到xls的切换应该很简单。