小编kec*_*ito的帖子

在Matlab中处理可变参数函数调用

我已经制作了一些辅助函数,它们使用其中的许多函数运行模拟.

为了使这些辅助函数更加用户友好,我想让用户选择使用较少的参数调用函数(未传递给函数的参数被赋予预定义的值).

例如,如果我有一个功能

function [res, val, h, v, u] = compute(arg1, arg2, arg3, arg4)
    if nargin < 4 || isempty(arg4) arg4 = 150; end
Run Code Online (Sandbox Code Playgroud)

以及像这样定义的函数runsim

function [res, val, h, v, u] = runsim(v, arg1, arg2, arg3, arg4)
Run Code Online (Sandbox Code Playgroud)

这种愚蠢的方式是

if nargin < 5 || isempty(arg4)
    compute(arg1, arg2, arg3)
else
    compute(arg1, arg2, arg3, arg4)
end
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是将参数更改为向量,但我不允许触及模拟背后的函数.是否有Matlab方法来处理这种情况,或者我必须用较少的参数一次又一次地编写相同的代码?

matlab variadic-functions

3
推荐指数
1
解决办法
1708
查看次数

Bootstrap + packery

我试图使用packery来对齐一些div.一切都很好,但我得到一个令人烦恼的空间,我不知道如何摆脱.这个空格只出现在第二行,它们继续前进.

<div class="container-fluid">
     <div class="row-fluid">
         <div class="span2" style="background-color: #999">
             the span2
         </div>
         <div class="span10">
           <div id="container">
            <div class="well item span3">
                <legend>Animals</legend>
                <ul>
                    <li>cat</li>
                    <li>dog</li>
                    <li>rat</li>
                </ul>
            </div>
               <div class="well item span3">
                <legend>Animals</legend>
                <ul>
                    <li>cat</li>
                    <li>dog</li>
                    <li>rat</li>
                </ul>
            </div> 
               <div class="well item span3">
                <legend>Animals</legend>
                <ul>
                    <li>cat</li>
                    <li>dog</li>
                    <li>rat</li>
                </ul>
            </div> 
               <div class="well item span3">
                <legend>Animals</legend>
                <ul>
                    <li>cat</li>
                    <li>dog</li>
                    <li>rat</li>
                </ul>
            </div> 
               <div class="well item span3">
                <legend>Animals</legend>
                <ul>
                    <li>cat</li>
                    <li>dog</li>
                    <li>rat</li>
                </ul>
            </div> 
               <div class="well item span3">
                <legend>Animals</legend>
                <ul>
                    <li>cat</li>
                    <li>dog</li>
                    <li>rat</li> …
Run Code Online (Sandbox Code Playgroud)

twitter-bootstrap packery

2
推荐指数
1
解决办法
1665
查看次数

需要成像细节

我正在为嵌入式系统实现一个小型成像库作为学校项目,我想提供matlab提供的相同功能.我已经实现了一些基本的东西,如阅读图像,阈值,一些很酷的效果等.

我面临的问题是我无法找到有关如何在rbga图像上应用过滤器(基于内核)的资源.我的意思是我找到了一些东西,它为每个颜色通道和处理的每个像素使用临时总和.我试着做同样但我失败了.结果与matlab不一样.对我来说,使用matlab获得完全相同的结果非常重要,因为这意味着所有设计为在matlab中运行的设置也将与我的代码一起运行.

我想知道是否有关于这些事情的书.matlab是否解释了函数的实现方式?

编辑

例如,我应用prewittX内核

>> a = imread('Hydrangeas.jpg');
>> w = [-1 0 1; -1 0 1; -1 0 1];
>> b = imfilter(a,w);
>> imshow(b)
Run Code Online (Sandbox Code Playgroud)

我做的是这样的

for i < img.height, i++
 for j < img.width, j++
  rsum = pixel[i-1,j-1].R*(-1) + pixel[i-1,j+1].R*(1)
  rsum += pixel[i,j-1].R*(-1) + pixel[i,j+1].R*(1)
  rsum += pixel[i+1,j-1].R*(-1) + pixel[i+1,j+1].R*(1)

  gsum = pixel[i-1,j-1].G*(-1) + pixel[i-1,j+1].G*(1)
  gsum += pixel[i,j-1].G*(-1) + pixel[i,j+1].G*(1)
  gsum += pixel[i+1,j-1].G*(-1) + pixel[i+1,j+1].G*(1)

  bsum = pixel[i-1,j-1].B*(-1) + pixel[i-1,j+1].B*(1)
  bsum += pixel[i,j-1].B*(-1) + pixel[i,j+1].B*(1)
  bsum += …
Run Code Online (Sandbox Code Playgroud)

c matlab image-processing

1
推荐指数
1
解决办法
86
查看次数

计算列表中相同长度的项目

我正在尝试使用pythonic样式编码移植cgi脚本.

sequence = "aaaabbababbbbabbabb"
res = sequence.split("a") + sequence.split("b")
res = [l for l in res if l]
Run Code Online (Sandbox Code Playgroud)

结果是

>>> res
['bb', 'b', 'bbbb', 'bb', 'bb', 'aaaa', 'a', 'a', 'a', 'a']
Run Code Online (Sandbox Code Playgroud)

这是C中约100loc.现在我想有效地计算res列表中具有相同长度的项目.例如,res包含5个长度为1的元素,3个长度为2的元素和2个长度为4的元素.

问题是序列字符串可能非常大.

python list

0
推荐指数
1
解决办法
530
查看次数