matlab中的字段名称无效

时间:2013-11-15 17:53:56

标签: matlab struct field

我有一个接受一个人的个性化的功能

function person = prompt_person ()
name = input ( ' Whats your name ? ' , 's' ) ;
day = input ( ' What day of the month were you born ? ') ;
month = input (' What month were you born ? ') ;
year = input ( ' What year were you born? ') ;
phone = input ( ' Whats your telephone number ? ') ;
date_of_birth = struct ('day', day, 'month', month, 'year', year) ;
person = struct ( 'name' , name, 'date_of_birth' , date_of_birth , 'phone' , phone ) ;
end

但是我一直收到错误消息“无效字段名称”名称“”,“提示符号中的错误消息”(第8行)我不知道什么是错的,因为我尝试创建一个更简单的小测试函数:

function [out] = tes( )
word=input('Insert word here ','s');
num=input('Insert number here ');
out= struct('Number1', word, 'Number2', num);
end

它工作正常,即使它似乎是完全相同的代码,让我在第一个函数中的toruble。任何想法在这里发生了什么?

2 个答案:

答案 0 :(得分:0)

我尝试按照建议将变量名称更改为personName,我意外地发现了什么错误: 结果我需要使用变量名称,''和文本之间没有空格。

E.g。 'PersonName'而不是'PersonName'。

答案 1 :(得分:0)

您可以考虑使用strtrim从字符串中删除前导和尾随whitespeace。例如:

>> name = ' John Doe   ';
>> name = strtrim(name)
name =
John Doe

如果您需要删除所有空格,请尝试strrep(name,' ','')

>> name = strrep(name,' ','')
name =
JohnDoe