1

我不知道如何在静态文本框中打印单元格数组。我正在尝试检查数组中的三个数值。如果值 < 3,那么我将字符串存储到一个称为警告的单元格数组中。我想将单元格数组“警告”的所有值显示到 matlab gui 中的静态文本框中。我在最后几行遇到问题。不知道发生了什么。任何帮助表示赞赏。我是初级水平;请一些我能理解的东西。

 arr=[mathtotal englishtotal sciencetotal]  %three numerical values
 warning={};  % storing the message that corresponds to the values.
 for x=arr
   if x<3.0
      warning={warning 'warning your total is less than 3'};
   else 
      warning={warning ''}  % do nothing if the value is not less than 3.
    end
      end
% done gathering the messages. now trying to print.  having trouble here.

 for x=1:3

      str=sprintf('%s ', warning{x})  % trying to iterate into a variable
 end

 set(handles.text8, 'String', str)   % trying to print the warning but not working......
4

2 回答 2

0

这应该有助于:

warning={};  % storing the message that corresponds to the values.
 for x=arr
     if x<3.0
      warning(end+1)={'warning your total is less than 3'};
     else 
      warning(end+1)= {''};  % do nothing if the value is not less than 3.
      end
 end

如果您想了解更多关于细胞的信息-> TMW:细胞阵列

于 2013-11-12T08:04:07.013 回答
0

“不工作”不是一个真正有用的错误描述。

只是猜测...

在每次迭代中

for x=1:3
      str=sprintf('%s ', warning{x})  % trying to iterate into a variable
end

你正在替换str- 所以最后它只会包含最后一次迭代的值。你可以使用:

str = sprintf('%s ', warning{:});

sprintf 重复格式字符串,直到使用完所有输入参数。

于 2013-11-12T07:55:52.580 回答