如何在 MatLab 实时脚本的代码输出之间添加换行符?

How can I add line breaks in between code outputs in a MatLab live script?

提问人:Mikayla Eckel Cifrese 提问时间:8/30/2023 最后编辑:Mikayla Eckel Cifrese 更新时间:9/1/2023 访问量:54

问:

我在实时脚本单元中有以下代码:

u = symunit; 

syms V_GS
V_t_value = 0.4*u.V;
K_n_W_L_value = 2*u.mA/u.V^2;

%get V_GS
i_d_equation_saturation = 0.5*K_n_W_L_value*(V_GS - V_t_value)^2; 
assume(V_GS >= V_t_value) %saturation region condition for V_GS is needed, otherwise the equation has two solutions

i_D_values = {50*u.uA, 200*u.uA};
for i = 1:2
    disp(replace(strcat('i_D = ', sym_with_units2str(i_D_values{i})), "mc", "u"))

    V_GS_value = solve(i_d_equation_saturation - i_D_values{i});

    %saturation region condition for V_DS
    V_DS_min = V_GS_value - V_t_value;
    V_GS_value = sym_with_units2str(V_GS_value)
    V_DS_min = sym_with_units2str(V_DS_min)
    disp(newline)
end

它输出这个:

enter image description here

我不明白为什么它没有像我告诉的那样在循环结束时显示新行。经过一堆谷歌搜索,我尝试了一堆使用 、 和 以及使用 、 和 代替 的变体,但似乎没有任何效果。如果我使用 or 函数,无论是否使用 I 、 或作为参数,它似乎都会忽略它。如果我使用 ,它会打印出来,而不仅仅是插入我想要的换行符。sprintffprintfdisp"\n""\r\n"char(10)newlinefprintfdisp"\n"newlinechar(10)sprintfans = ' '

我怎样才能让它只显示换行符?

而且,为了更加清楚,这样就不会被错误地关闭为重复项,我不是在问如何在字符串中插入换行符——我是在问如何在实时脚本中的代码输出之间插入换行符。向字符串添加换行符的各种方法似乎不适用于在输出之间添加换行符。

编辑:有人评论说想尝试运行我的确切代码,我在顶部添加了变量定义,这是我在单独的文件中定义的函数定义:

function svalue = sym_with_units2str(value)
    [value, unit] = separateUnits(value);
    svalue = strcat(sim2str(value), symunit2str(unit));
end
MATLAB 格式化 printf 换行符

评论

1赞 Luis Mendo 8/30/2023
我无法运行您的确切代码,因为您尚未定义所有变量或函数,但将代码减少到按预期获得换行符。你有没有机会重新定义?也许试试for i = 1:2, disp('abc'), disp(newline), endnewlineclear newline
1赞 Mikayla Eckel Cifrese 8/30/2023
@LuisMendo,嗯。当我运行那行示例代码时,我也得到了换行符,我尝试更改我的代码,以便我将命令与 放在同一行,并用逗号分隔它们,但这并没有区别。我还尝试将它与循环顶部的显示语句放在同一行,但这也没有区别。有什么想法吗?如果有帮助,我更新了帖子以包含变量和函数定义。哦,我仔细检查了我的工作区中没有称为换行符的变量。disp(newline)V_DS_min
1赞 Luis Mendo 8/30/2023
你试过了吗?也许你已经重新定义为......很难说,因为您提供的代码无法运行clear newlinenewline[]

答:

1赞 Mikayla Eckel Cifrese 8/30/2023 #1

我终于找到了一些有效的东西,所以发布它以防其他人遇到同样的问题。

替换为 或 让它显示换行符。disp(newline)fprintf(' ')disp(' ')