matlab - MATLAB指南中for循环的算术问题
问题描述
我是 MATLAB 新手。我想在 for 循环中使用这个公式:ℓ=taper1*ℓ−1 没有错误消息,但我在输出中看不到正确的值。(我用计算器程序控制我的值)(我检查了我的变量。并在这个循环之前确认它们是真的)。我的第二个问题是我不知道如何在每个增量中添加新行。这是我的尝试:
l= (1:N); //creating and empty array
l(1)=((3*(10^8))/(2*f1)); //formula
for i = 2:N
l(i) = taper1 * l(i - 1);
set(handles.popupmenu3,'String',l(i) );
end
我试图用这个添加新行但没有用
set(handles.popupmenu3,'String',l(i) \n );
解决方案
我认为您正在尝试将set
数值设置为String
.
用途:num2str(l(i))
用于转换l(i)
为String
.
要添加新行,可以使用sprintf
如下:
set(handles.popupmenu3, 'String', sprintf('%f\n', l(i)));
以下代码似乎对我有用:
N = 3;
f1 = 1;
taper1 = 0.5;
l = (1:N); %creating and empty array
l(1)=((3*(10^8))/(2*f1)); %formula
for i = 2:N
l(i) = taper1 * l(i - 1);
%set(handles.popupmenu3, 'String', num2str(l(i)));
set(handles.popupmenu3, 'String', sprintf('%f\n', l(i)));
end
如果您将所有元素的值添加到问题中,这可能会有所帮助。
如果要获取结果列表,请将字符串值添加到 a cell array
:
添加行尾\n
不是这样做的方法。
中的每一行popupmenu
都是 a 中的成员cell array
。
例如:
S{1} = 'aaa';
S{2} = 'bbb';
S{3} = 'ccc';
set(handles.popupmenu3, 'String', S);
检查以下代码是否有效:
N = 3;
f1 = 1;
taper1 = 0.5;
l = (1:N); %creating and empty array
l(1)=((3*(10^8))/(2*f1)); %formula
for i = 2:N
l(i) = taper1 * l(i - 1);
%set(handles.popupmenu3, 'String', num2str(l(i)));
str = get(handles.popupmenu3, 'String'); %Get older value of popupmenu3
str{end+1} = num2str(l(i)); %Add new string to popupmenu list
set(handles.popupmenu3, 'String', str); %Update popupmenu3
end
推荐阅读
- database - MongoDB - 查询嵌入式文档数组
- javascript - 在 Web Worker 中访问串行端口
- apache-spark - 如何在 Spark 和 Cassandra 中将数据从较小的表映射到较大的表?(第一表的主键是第二表的分区键)
- authentication - 使用 OAuth 集成产品
- ios - 限制两个特定文本字段中的字符数
- amazon-ec2 - 我可以为 ECS 使用现有的、正在使用的 EC2 实例吗?
- javascript - 使用 JavaScript 或 jQuery 在函数中包装或不包装
- python - 在 gimpfu 中使用外部 GUI 撤消
- php - PHP json_decode 由于 json 元素
- nginx - 我在我的数字海洋水滴上重置了我的根密码,现在收到 502 错误网关错误